SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

12
返回列表 发新帖
楼主: shiyiming
打印 上一主题 下一主题

再问下“死猪头” :D

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
11#
 楼主| 发表于 2009-8-13 13:03:02 | 只看该作者

Re: 再问下“死猪头” :D

to ganshenme

”运行不出结果“-----这句话从来且将来也永远是一句让人除了苦笑而没法进一步提供进一步帮助的回复。运行不出结果是1SAS运行报错呢?2.是没有任何输出呢?3是输出的结果不知道在哪个数据集中找呢?4,是数据集中都是空值呢?还是你用写字板来运行的这段程序呢?等了一周你都没反应过来?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
12#
 楼主| 发表于 2009-8-14 06:33:14 | 只看该作者

Re: 再问下“死猪头” :D

钢鞭男莫急!你的某一行少了一点。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
13#
 楼主| 发表于 2009-8-14 10:18:24 | 只看该作者

Re: 再问下“死猪头” :D

甚是奇怪,我直接从贴子里COPY代码出来RUN,没有什么异常。难道我的SAS9有纠错功能? 还是浏览器的显示问题?我用的MAXTHON。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
14#
 楼主| 发表于 2009-8-14 11:27:29 | 只看该作者

Re: 再问下“死猪头” :D

你可能有
[code:3bkv8z81]
options missing='';
[/code:3bkv8z81]
但是对我们这样的常人来说,一般是
[code:3bkv8z81]
options missing=.;
[/code:3bkv8z81]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
15#
 楼主| 发表于 2009-8-14 12:47:47 | 只看该作者

Re: 再问下“死猪头” :D

奇怪,我的代码中好像没用OPTION啊?没这句话啊?难道你们看到的代码和我看的不一样?不说了。果然是有什么问题。老夫夜观天象,恐有异事。。。。。。。。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
16#
 楼主| 发表于 2009-8-19 21:29:27 | 只看该作者

Re: 再问下“死猪头” :D

to ahuige

老大,不好意思,最近被搞去干别的事情去了,好多天没来了 <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->  <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->  <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->
你那个程序运行没有错,但是产生的那个allavg表是个空的,最后得到的final表也是空的。

我看到的代码也是没有用option的,猪头怎么到看的,好奇怪啊 <!-- s:shock: --><img src="{SMILIES_PATH}/icon_eek.gif" alt=":shock:" title="Shocked" /><!-- s:shock: -->  <!-- s:shock: --><img src="{SMILIES_PATH}/icon_eek.gif" alt=":shock:" title="Shocked" /><!-- s:shock: -->
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
17#
 楼主| 发表于 2009-8-19 21:39:14 | 只看该作者

Re: 再问下“死猪头” :D

你试试,如果只是运行我的样式代码结果应该是有的,和以前猪头的程序的结果可以对照一下。如果用到你的数据上不成功,那你得按相应的不同点去tailor.
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
18#
 楼主| 发表于 2009-8-19 21:41:21 | 只看该作者

Re: 再问下“死猪头” :D

to ahuige

我就是直接copy你的程序运行的,最后得到的Allavg和Final两个表都是空的~
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
19#
 楼主| 发表于 2009-8-19 22:01:11 | 只看该作者

Re: 再问下“死猪头” :D

直说了罢,要么在开头加[code:3jrvgqqk]options missing=''[/code:3jrvgqqk]
要么在[code:3jrvgqqk]%if &amp;note eq %then[/code:3jrvgqqk] 这一行加一个点。
版主写了这么漂亮的程序,你都不认真读一下,简直猪头都不如!

PS:我这人最大的缺点就是说话太值。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
20#
 楼主| 发表于 2010-12-10 18:35:00 | 只看该作者

Re: 再问下“死猪头” :D

呵呵,很久没有写东西了,写出来的都像垃圾,没有检查,没有优化。
[code:2c4ajr1l]
data a;
input ID$ Date yymmdd8&#46; Num Act Note;
format Date yymmdd10&#46;;
cards;
001 08-07-01 100 1 &#46;
001 08-07-02 20 0 &#46;
001 08-07-05 100 1 &#46;
001 08-07-06 80 0 &#46;
001 08-07-07 40 0 &#46;
001 08-07-08 40 0 &#46;
001 08-07-09 100 1 &#46;
001 08-07-10 120 1 0
001 08-07-12 240 0 &#46;
002 08-07-01 100 1 &#46;
002 08-07-02 20 0 &#46;
002 08-07-05 80 0 &#46;
002 08-07-06 100 1 &#46;
002 08-07-08 50 0&#46;
;
run;
data c(keep=date sell InStckDt lsting );
array stock{0&#58;9} _temporary_ (10*0); /*stock Amount*/
array dt{0&#58;9}  _temporary_ (10*0); /*Stocking date*/
retain StckNo 0; /*Stock number*/
set a(where=(ID=&quot;001&quot;));
if act=1 then do;
        if note=0 then do;
                TotStck=0;
                i=StckNo;
                do while(i&gt;=0);
                        TotStck=TotStck+stock{i};
                        i=i-1;
                end;
                i=StckNo;
                do while(i&gt;=0);
                        stock{i}=stock{i}+Num*stock{i}/TotStck;
                        i=i-1;
                end;
        end;
        else do;
                StckNo+1;
                i=StckNo;
                do while(i&gt;0);
                        stock{i}=stock{i-1};
                        dt{i}=dt{i-1};
                        i=i-1;
                end;
                stock{0}=num;
                dt{0}=date;
        end;
end;

if act=0 then do;
        t=num;
        i=StckNo-1;
        do while(i&gt;=0);
                u=stock{i};
                stock{i}=max(stock{i}-t,0);
                t=t-u;
                put i=;
                if stock{i}=0 then StckNo=StckNo-1;
                if stock{i}&lt;u then do;
                        lsting=datdif(dt{i},date,'act/act');
                        sell=u-stock{i};
                        InStckDt=dt{i};
                        output c;
                end;
                if stock{i}=0 then dt{i}=0;
                if t=0 then return;
                i=i-1;
        end;
end;
format InStckDt yymmdd10&#46;;
run;
[/code:2c4ajr1l]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-3 14:50 , Processed in 0.069164 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表