我正在使用以下代码将文本文件导入SAS:
proc import datafile="C:\Users\Desktop\data.txt" out=Indivs dbms=dlm replace;
delimiter=';';
getnames=yes;
run;
但是,我在日志中收到错误消息,并且某些字段填充了“。”取代真实的数据,我不知道是什么问题。
错误消息是:
Invalid data for DIPL in line 26 75-76.
Invalid data for DIPL in line 28 75-76.
Invalid data for DIPL in line 31 75-76.
Invalid data for DIPL in line 34 75-76.
答案 0 :(得分:5)
在大多数情况下,不要将PROC IMPORT
用于分隔文件;你应该使用数据步输入。您可以使用PROC IMPORT
生成初始代码(到您的日志),但大多数情况下您需要至少进行一些更改。这听起来像是其中一次。
data want;
infile "blah.dat" dlm=';' dsd lrecl=32767 missover;
informat
trans $1.
triris $1.
typc $6.
;
input
trans $
triris $
typc $
... rest of variables ...
;
run;
PROC IMPORT
在您的日志中生成如下代码,因此您可以将其用作起点,然后更正错误的内容(数字而非字符,如果上面的内容太少则添加变量显然是等等。)。
答案 1 :(得分:1)
我从您的链接中复制了文本文件,并运行了您的代码(没有撇号):
proc import datafile="C:\temp\test.txt" out=Indivs dbms=dlm replace;
delimiter=';';
getnames=yes;
run;
尽管如下,它仍然运作良好:
Number of names found is less than number of variables found.
结果:
NOTE: WORK.INDIVS data set was successfully created.
NOTE: The data set WORK.INDIVS has 50 observations and 89 variables.
NOTE: PROCEDURE IMPORT used (Total process time):
real time 0.30 seconds
cpu time 0.26 seconds
答案 2 :(得分:0)
如果日志中有“找到的名称数小于找到的变量数”。 然后它创建具有空白值的新变量。