SAS - 在yymmn6中创建一个包含月份列的数据集。格式

时间:2016-12-20 22:34:08

标签: sas dataset

我想创建一个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

有人可以帮忙!

1 个答案:

答案 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;

并且认为你的意思是"做二十一万五千一百一十二至一百一十六百万"而不是"二十五十一至十一月二十六日十二月十六日"。