SAS变量

时间:2016-03-24 18:43:30

标签: sas

我一遍又一遍地得到这个错误代码,当然还有不同的行号。

NOTE: Invalid data for VAR4 in line 264808 30-30.
RULE:----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+
264808    F113Q1008712|201506|43003.27|R|28|332|N||||3.375|0|201412|||| 61
VAR1=F113Q1008712 VAR2=201506 VAR3=43003.27 VAR4=. VAR5=28 VAR6=332 VAR7=N VAR8=  VAR9=
VAR10=  VAR11=3.375 VAR12=0 VAR13=2 VAR14=  VAR15=  VAR16=  VAR17=  _ERROR_=1 _N_=264808

经过足够的时间我发生了这个错误代码:

WARNING: Limit set by ERRORS= option reached Further errors of this type will not be printed.

我认为这是分隔符的问题(管道' |'在我的情况下)。我发现另一个question说:

"如果它实际上是制表符分隔符,则可能需要使用dlm='09'x代替。"我想我的问题是我对编码缺乏了解。 (我只是使用SAS来补充我的论文,所以很多这就是我要学习的东西。)我会把dlm='09'x放在哪里,在我的情况下它甚至可以帮助我。

我还发现another question的评论说:

" $使它成为一个字符变量,而不是数字变量。这几乎肯定会覆盖任何信息错误(因为字符变量非常灵活)但不会给你一定的正确结果。:)"

在阅读完这些答案之后,我相信我需要以某种方式告诉SAS接受Var4中可能出现的数值以及R' R'的变量值。有没有办法让SAS接受。或者我只是要改变我所有的' R'到数值?

如果有助于我使用此代码输入SAS:

proc import datafile="E:\2013\historical_data1_time_Q12013.txt"
     out=TYr2013Q1
     dbms=dlm
     replace;
     delimiter='|';
     getnames=no;
run;

感谢您的帮助。非常感谢。

1 个答案:

答案 0 :(得分:1)

此示例显示如何使用MISSING语句使用PROC IMPORT将字符R作为缺少R .R读入数字变量。

enter image description here

filename FT15F001 temp;
proc import datafile=FT15F001 out=test replace dbms=dlm;
   missing r;
   delimiter='|';
   getnames=no;
   guessingrows=1;
   parmcards;
1|2|3|4
1|r|3|5
;;;;
   run;