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"。