SAS-在YYMMN6中创建一个带有一个月列的数据集.格式



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

,如果您在日期=分配中需要,可以将值放在字符串上,或者像我在这里一样将其保留为格式的日期。

您正在做的事情的问题是,您将其转换为常规号码,该号码没有记忆是在呼叫Symput步骤中的日期;所以它看到

do month = 201511 to 201610;
  ...
end;

并以为您的意思是"做一千五百11至200六百十个十千五十六百",而不是"做二十五十五十月至二十六十月"。

相关内容

最新更新