我有一个sas数据集,其中一列名为"date"格式为yymmdd10。,如2022-05-24。
我试图把它转换成date9的格式。如下所示,但返回missing
data want;
set have;
date1 = input(date,yymmdd10.);
format date1 date9.
run;
所以我想知道正确的代码是什么。谢谢!
日期' 24may2022d '是数字22,790。要让它显示为24MAY2022而不是2022-05-24,只需改变显示它的格式。
data want;
set have;
format date date9. ;
run;
你的代码把DATE当作字符变量来处理。因此SAS将首先使用BEST12将数字22,790转换为字符串。格式。由于您的信息宽度只有10,INPUT()函数将尝试转换12个字符的字符串22790
的前10个字符。但是字符串227
不能被该信息解释为日期,因此缺少值。
修改数据集中日期的外观,而不需要使用PROC DATASETS重新创建数据集
title 'Initial format';
proc print data=have(obs=5);
var date;
run;
*modify format;
proc datasets lib=work nodetails nolist;
modify have;
format date date9.;
run;quit;
title 'New format';
proc print data=have(obs=5);
var date;
run;