SAS - 在 yymmn6 中创建一个包含月份列的数据集。格式
SAS - Create a dataset with a month column in yymmn6. format
我想创建一个 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
有人可以帮忙吗!
您的做法可能应该略有不同。我会一步完成这两位。
data months;
do mon_incr = -14 to -2;
date = intnx('month',today(),mon_incr);
output;
end;
format date YYMMN6.;
run;
如果你想在 date= 赋值中,你可以将值放入一个字符串,或者像我在这里做的那样保留一个格式化的日期。
你在那里做的事情的问题是你把它转换成一个普通的数字,这个数字没有记忆在调用 symput 步骤中是一个日期;所以它看到了
do month = 201511 to 201610;
...
end;
并认为你的意思是 "do two hundred one thousand five hundred eleven to two hundred one thousand six hundred ten",而不是 "do twenty fifteen november to twenty sixteen october"。
我想创建一个 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
有人可以帮忙吗!
您的做法可能应该略有不同。我会一步完成这两位。
data months;
do mon_incr = -14 to -2;
date = intnx('month',today(),mon_incr);
output;
end;
format date YYMMN6.;
run;
如果你想在 date= 赋值中,你可以将值放入一个字符串,或者像我在这里做的那样保留一个格式化的日期。
你在那里做的事情的问题是你把它转换成一个普通的数字,这个数字没有记忆在调用 symput 步骤中是一个日期;所以它看到了
do month = 201511 to 201610;
...
end;
并认为你的意思是 "do two hundred one thousand five hundred eleven to two hundred one thousand six hundred ten",而不是 "do twenty fifteen november to twenty sixteen october"。