【发布时间】:2015-12-23 16:13:32
【问题描述】:
我实际上是在尝试使用信息将杂乱的数据读入 SAS 并遇到问题。我在原始 txt 文件中有以下形式的数据列,例如:
RegDate
0
0
16/10/2002
20/11/2003
0
对于 RegDate,0 = 缺失,否则存在日期。我想将这些数据读入 SAS,将“NA”作为零,将日期作为日期,然后输出到数据集中。
如果所有日期都存在,我可以使用代码
data test;
%let _EFIERR_ = 0; /* set the ERROR detection macro variable */
infile "&pathlocation" delimiter='09'x
MISSOVER DSD firstobs=2 ;
informat RegDate ddmmyy10. ;
format RegDate ddmmyy10. ;
input
RegDate;
if _ERROR_ then call symputx('_EFIERR_',1); /* set ERROR detection macro variable */
run;
但是我无法读取上面的文本文件,因为它没有考虑零,因为信息设置为读取日期。
如果使用 proc 导入语句
proc import datafile="&pathlocation" out=test dbms=tab replace;
run;
它尝试使用 best32。信息,因为第一行有一个零。然后无法读取日期。
所以我需要创建某种自定义格式。我可以单独为数字信息或单独的字符信息或图片信息(日期需要?)执行此操作。我无法弄清楚如何为一个变量组合多种格式。我确信解决方案非常简单,但是我无法在网上找到它,所以如果这很明显,我深表歉意。有没有一种方法可以 a) 将一些 IF-THEN 语句放入格式中,以便它根据输入执行不同的操作 b) 以纯文本形式读取数据,以便需要使用格式。
【问题讨论】:
标签: format sas raw-data informat