楼主: 绣球
389 4

[问答] 关于do循环的求助 [推广有奖]

  • 1关注
  • 0粉丝

等待验证会员

初中生

23%

还不是VIP/贵宾

-

威望
0
论坛币
1 个
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
78 点
帖子
8
精华
0
在线时间
16 小时
注册时间
2015-1-10
最后登录
2017-10-12

绣球 发表于 2017-8-12 13:19:05 |显示全部楼层
用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每组最后都会多一行重复值,如何解?

支持楼主:购买VIP购买贵宾 购买后,论坛将把您花费的资金全部奖励给楼主,以表示您对TA发好贴的支持
 
载入中......
stata SPSS
绣球 发表于 2017-8-12 14:27:01 |显示全部楼层
好像是output的缘故,修改了一下,用了一个笨办法,算是解决了,有更好的办法请留言哦
回复

使用道具 举报

mycpcw 发表于 2017-8-14 08:09:46 |显示全部楼层
.....
 output;
   end;
output;
end;
run;
改成:
.......
output;
   end;
end;
run;
因为“do......end”语句是封闭的其他语句要放在循环之内。
回复

使用道具 举报

hkhl237 发表于 2017-8-14 10:42:27 |显示全部楼层
把第二个output 去掉就好了
回复

使用道具 举报

每一天都是晴。 发表于 2017-8-14 11:52:11 |显示全部楼层
去掉倒数第三行的output
回复

使用道具 举报

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

GMT+8, 2017-10-22 14:34