我使用proc import将一些excel电子表格提取到sas中。但是我现在需要将数据集连接在一起,并且需要所有数据集的统一日期格式。它们目前采用字符格式,有些结构为' 1999Q1'日期和一些日期' 12/02 / 2013'日期。关于如何更改所有数据集中所有日期的格式的任何帮助?
答案 0 :(得分:1)
您需要使用INPUT()函数将字符串转换为日期,以便合并它们。让我们制作一些样本数据集来模拟您从Excel工作表中导入的内容。
data have1;
date='1999Q1';
var1=1;
run;
data have2;
date='02DEC2013'd ;
format date yymmdd10.;
var2=2;
run;
现在让我们从这些数据集中获取变量名称和类型。
proc contents data=work._all_ noprint out=contents; run;
我们可以使用此元数据编写一些代码,将字符串转换为日期。
filename code temp;
data _null_;
set contents;
where upcase(name)='DATE' and type=2;
file code ;
length dsn $41;
dsn=catx('.',libname,memname);
put 'data ' dsn ';'
/ ' set ' dsn ';'
/ ' datenum=input(date,anydtdte.);'
/ ' format datenum yymmdd10.;'
/ ' rename datenum=date date=datechar;'
/ 'run;'
;
run;
%inc code / source2 ;
现在我们可以合并数据集。
data want ;
merge have1 have2;
by date;
run;