我在SAS中有一个变量,具有特定年份,称为“年”,以及一年中指定的一周,“周”。基于此,我想创建一个时间变量“ddmmmyyyy”,其中dd应始终为01.
感谢。
答案 0 :(得分:0)
我认为INTCK是一种合理的方法。
24 data _null_;
25 do year = 2015;
26 ref = mdy(01,01,year);
27 do week = 0,1 to 50 by 5,52;
28 week_starts = intnx('WEEK',ref,week,'B');
29 week_ends = intnx('WEEK',ref,week,'E');
30 put (week year ref week_:)(2*=best. 3*=date9.);
31 end;
32 end;
33 run;
week=0 year=2015 ref=01JAN2015 week_starts=28DEC2014 week_ends=03JAN2015
week=1 year=2015 ref=01JAN2015 week_starts=04JAN2015 week_ends=10JAN2015
week=6 year=2015 ref=01JAN2015 week_starts=08FEB2015 week_ends=14FEB2015
week=11 year=2015 ref=01JAN2015 week_starts=15MAR2015 week_ends=21MAR2015
week=16 year=2015 ref=01JAN2015 week_starts=19APR2015 week_ends=25APR2015
week=21 year=2015 ref=01JAN2015 week_starts=24MAY2015 week_ends=30MAY2015
week=26 year=2015 ref=01JAN2015 week_starts=28JUN2015 week_ends=04JUL2015
week=31 year=2015 ref=01JAN2015 week_starts=02AUG2015 week_ends=08AUG2015
week=36 year=2015 ref=01JAN2015 week_starts=06SEP2015 week_ends=12SEP2015
week=41 year=2015 ref=01JAN2015 week_starts=11OCT2015 week_ends=17OCT2015
week=46 year=2015 ref=01JAN2015 week_starts=15NOV2015 week_ends=21NOV2015
week=52 year=2015 ref=01JAN2015 week_starts=27DEC2015 week_ends=02JAN2016
答案 1 :(得分:-2)
您需要将周转换为月,然后使用mdy()函数。
format new ddmmmyyyy.; **or try date.;
month=year*365+week*7-'1jan60'd; **should be a sas date;
new=mdy(month(month),1,year);