SAS无效数据

时间:2013-12-02 16:17:37

标签: sas

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

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.

2 个答案:

答案 0 :(得分:3)

看起来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

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

答案 1 :(得分:1)

作为分隔符的.令人困惑。它试图读取18.579.6.261 ......作为一个数字。它不是,导致错误。如果可能,请使用空格作为分隔符,您的陈述将起作用。