全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1188 4
2017-08-12
用do循环求得一数据集,却始终都会各组多一行,百思不得其解,贴上代码和结果,望大侠出手相助,不胜感激!!
code:
data timing;
format data yymmdd10. initialdate yymmdd10. sort best12.;
data='20aug2017'd;
initialdate='04jul2017'd;
sort=3+((data-initialdate)-33)/7;
call symput('data',data);
call symput('initialdate',initialdate);
call symput('sort',sort);
run;

data dt2;
format startdate yymmdd10. enddate yymmdd10. reviewstart yymmdd10. reviewend yymmdd10.;
startdate=&initialdate. -7;
do sort=1 to &sort.;
startdate+7;
enddate=startdate+6;
reviewstart=startdate+3;
   do reviwnum=1 to &sort. until ((&data.-reviewstart)=9);
      reviewstart+7;
          reviewend=reviewstart+6;
          output;
   end;
output;
end;
run;
问题是sort每组最后都会多一行重复值,如何解?
二维码

扫码加我 拉你入群

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

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

全部回复
2017-8-12 14:27:01
好像是output的缘故,修改了一下,用了一个笨办法,算是解决了,有更好的办法请留言哦
二维码

扫码加我 拉你入群

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

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

2017-8-14 08:09:46
.....
 output;
   end;
output;
end;
run;
改成:
.......
output;
   end;
end;
run;
因为“do......end”语句是封闭的其他语句要放在循环之内。
二维码

扫码加我 拉你入群

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

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

2017-8-14 10:42:27
把第二个output 去掉就好了
二维码

扫码加我 拉你入群

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

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

2017-8-14 11:52:11
去掉倒数第三行的output
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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