【问题标题】:SAS Invalid DataSAS 无效数据
【发布时间】:2013-12-02 16:17:36
【问题描述】:

我有一个包含数字数据的数据集。代码如下:

data test;
infile 'C:\Users\Public\Documents\Test\test.dat';
 input a1 a2 a3 a4 b1 b2 b3 b4;
 run;

 proc print data=test;
 run;

当我运行它时,我收到以下错误消息:

NOTE: Invalid data for a1 in line 1 1-51.
NOTE: Invalid data for a2 in line 2 1-50.
NOTE: Invalid data for a3 in line 3 1-50.
NOTE: Invalid data for a4 in line 4 1-50.
NOTE: Invalid data for b1 in line 5 1-51.
NOTE: Invalid data for b2 in line 6 1-51.
NOTE: Invalid data for b3 in line 7 1-51.
NOTE: Invalid data for b4 in line 8 1-51.
RULE:     ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+-

8   CHAR  18.597.6.261.4.032.0.215.-0.099.32.580.36.430.1.038 51
    ZONE  332333032333032333032333023233303323330332333032333
    NUMR  18E59796E26194E03290E2159D0E099932E580936E43091E038

我该如何解决这个问题?出现此错误消息是因为数字的位数过多吗?

已添加。以下是我的数据中的一些示例行:

21.312 7.039 5.326 .932 -.030 35.239 36.991 1.057
21.206 6.979 5.237 .871 .015 35.713 36.851 1.064

这里还有错误信息的另一部分:

NOTE: Invalid data errors for file ''C:\Users\Public\Test\test.dat'' occurred
      outside the printed range.
NOTE: Increase available buffer lines with the INFILE n= option.

【问题讨论】:

  • 你能给我们提供你文件中的一两行数据吗?
  • @JohnChrysostom:我添加了一些示例行。
  • 您的代码似乎与这些示例行一起工作得很好...您确定文件的位置正确吗?另外,你能抓住一些给出无效数据的行吗?
  • @JohnChrysostom:这些是我要读取的数据中的行。代码不适用于任何示例行。我还添加了错误消息的其他部分。
  • 我不认为你可以把整个文件放到某个地方?它是大的还是敏感的?

标签: sas


【解决方案1】:

看起来 SAS 将每一行视为一个变量,而不是一个包含多个变量的观察,这告诉我它没有正确识别分隔符。如果如您发布的示例行中那样,分隔符是一个空格,那么您的代码应该可以工作。或者,您可以通过执行以下操作来确保它使用的是空格分隔格式:

data test;
    infile "C:\Users\Public\Documents\Test\test.dat" dlm=" ";
    input a1 a2 a3 a4 b1 b2 b3 b4;
run;

如果它实际上是制表符分隔的,您可能需要改用dlm='09'x

如果有帮助,请告诉我们。

【讨论】:

    【解决方案2】:

    . 作为分隔符会混淆它。它正在尝试将 18.579.6.261 ... 读取为数字。它不是,这导致了错误。如果可能,请使用空格作为分隔符,这样您的语句就会起作用。

    【讨论】:

    • 空格的分隔符是什么? delim=" "?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-07
    • 1970-01-01
    相关资源
    最近更新 更多