我的数据集的日期为格式201011,即2010年11月。我希望它以日期格式转换为2010Q4。我申请了YYQ6。格式,但它显示结果为2510Q4。这里有什么问题?
data abc;
date=201011;
run;
data abc2;
set abc1;
format date YYQ.;
run;
答案 0 :(得分:0)
您需要将日期写为日期文字,否则SAS会将其解释为自1960年1月1日以来的天数。
试试这个:
data abc;
date='01nov2010'd;
run;
data abc2;
set abc1;
format date YYQ.;
run;
如果您有yyyymm
格式的现有数字变量,则需要在应用格式之前先创建一个新变量,例如
newdate = input(put(date,6.), yymmn6.);
format newdate yyq.;
答案 1 :(得分:0)
data _null_;
datenum=201011;
dateval=mdy(mod(datenum,100),1,floor(datenum/100));
put dateval mmddyy10.;
run;
不确定FLOOR功能是否必要 - 在这种情况下,没有它就可以正常工作。
问题是,这种算术操作和使用MDY的效率是否比转换为字符然后回到日期更有效?