我想创建一个SAS数据集,其中只有一列具有yymmn6中的值月份。格式。数据范围应来自
call symput('enddt',trim(left(intnx('month',today(),-2),yymmn6.)));
call symput('startdt',trim(left(intnx('month',today(),-14),yymmn6.)));
现在,如果我这样做
data months;
do date = &startdt to &enddt;
output;
end;
run;
我正在获得输出
201511
201512
201513
201514
201515
201516
.
.
201610
但我要找的结果是
201511
201512
201601
201602
201603
201604
.
.
201610
有人可以帮忙!
答案 0 :(得分:0)
你应该稍微改变一下。我会一步完成这两项。
data months;
do mon_incr = -14 to -2;
date = intnx('month',today(),mon_incr);
output;
end;
format date YYMMN6.;
run;
如果您想要在date =赋值中,可以将值设为字符串,或者保留格式化日期,就像我在这里一样。
您在此处所做的事情的问题是,您将其转换为常规号码,而该号码在通话参与步骤中无记忆日期;所以它正在看
do month = 201511 to 201610;
...
end;
并且认为你的意思是"做二十一万五千一百一十二至一百一十六百万"而不是"二十五十一至十一月二十六日十二月十六日"。