在 SAS 中显示日期

数据挖掘 sas
2022-02-14 16:41:15

在 SAS 中运行以下程序后,我试图在结果中显示日期。它运行正常,但在 DOB 列下的 sas 数据表中,除了句号外,我什么也没得到.

下面是我的代码我做错了什么?

data sample; 
Input ID name $ Dob;
Format DOB mmddyy10. ; 
datalines;
1 abc 22jan1996
2 xyz 25aug1996
;
run;
Proc print data = sample;
run; 

另外我想知道分号前这一行末尾的句号是什么意思:

Format DOB mmddyy10. ;
2个回答

尝试以下操作:

data sample; 
Input ID name $ Dob;
informat DOB date9. ; 
format DOB mmddyy10. ; 
datalines;
1 abc 22jan1996
2 xyz 25aug1996
;
run;
Proc print data = sample;
run; 

我已经添加了信息行。原始代码的问题是您没有告诉 SAS DOB 将采用什么格式。在这种情况下:22jan1996 是 date9。格式,所以我添加了告诉 SAS 数据将以这种方式出现的信息。

格式 DOB 行告诉 SAS 将数据显示为 mmddyy10。这使得 22jan1996 看起来像 01/22/1996。

最后,format/informat 行中的.before;指定它是一种格式类型。有字符格式:$8。或数字格式 Best12。ETC...

您需要指定数据信息才能读取 SAS 数据。由于没有与 DOB 关联的信息,因此该字段在 SAS 中被视为字符。然后,当您指定 DOB 变量时,Input ID name $ Dob;它是一个数字,因此它显示为 missing(.)。

您需要添加如下信息行。

data sample; 
Input ID name $ Dob;
informat dob date9.;
Format DOB mmddyy10. ; 
datalines;
1 abc '22jan1996
2 xyz '25aug1996
;
run;
Proc print data = sample;
run; 

注意 date9 的使用。格式以读取 SAS 日期。

阅读更多SAS 日期格式:如何正确显示日期?