全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1888 4
2010-08-23
有如下数据集:
data a1;
input fee1-fee24 @@;
datalines;
. . . . 12 . 34 34 34 34 34 34 34 34 . . . . . . . . . .
4 . 4 . . . . . 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 65
. . . . . . . . . . . 4 4 4 4 4 . . . . . . . .
. . . . 12 . 34 34 34 34 34 34 34 34 . . . . . . . . . .
4 . 4 . . . . . 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 65
. . . . . . . . . . . 4 4 4 4 4 . . . . . . . .
;
run;



fee1-fee24是到目前为止的前24个月的交易,现在我想知道距离现在没有交易的月份数,比如第1条,fee1-fee4连续无交易,则为4,我自己也写了一个程序:
data a3;
set a1;
array fee(24) fee1-fee24;
format count $32.;
count="";
do i=1 to 23;
if fee(i)>0 then count=compress(count||"1");
else count=compress(count||"0");
end;
inc_cnt=countc(scan(count,1,1),"0");
run;


是可以实现的,感觉有点复杂

但是我尝试一下程序
%macro fee();
data a2;
set a1;
%do i=1 %to 24;
if sum(of fee1-fee&i.)>0 then
a1=&i.;
%end;
run;
%mend;
%fee;
是不对的,我自己觉得是要放stop,但是不知道改哪里放?或者加个do until啥的,怎么改这个程序,请高手指教,谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2010-8-23 22:31:23
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-8-25 13:34:39
2# soporaeternus


学习了 谢谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-8-26 14:20:33
说句实话,没看懂
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-8-26 22:55:25
如果输入后变为含有MISSING VALUE的数据集,是不是可以用函数N()计算啊,这样好像就简单多了。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群