【发布时间】:2021-07-02 03:19:04
【问题描述】:
我正在使用以下代码将文本文件导入 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.
【问题讨论】:
-
你能发布你的日志吗?此外,您的 datafile= 选项中有一个叛徒撇号..
-
好的,看来是 DIPL 变量导致了问题,因此被“.”s 填充。 SAS 将其读取为 best12.,实际上是 2 美元。变量 - 这是问题的原因吗?
-
很有可能。 Joe 是正确的——在这里使用 infile 语句是一种更好的方法。您可以从日志中提取代码(由 proc 导入生成)并根据您的需要进行调整。如果在选择时按住 ALT 键,则可以避免行号..
-
您现在发布的数据文件中没有分号,因此我将代码中的分隔符更改为空格,SAS 读取文本文件对我来说很好。我还尝试在数据中用分号替换空格并使用您的原始代码 - 这也很好 - DIPL 被识别为一个字符。你还有问题吗?
-
好的,我之前更新的数据样本是在 R 中处理的 - 所以我认为它应该将变量更改为字符,这就是它工作正常的原因。然而,当使用 infile 语句并将 DIPL 更改为 $2 时,原始数据集 (telechargement.insee.fr/fichiersdetail/RP2010/txt/…)。只是将错误转移到其他地方......我得到其他字段填充“。”s。
标签: sas