【发布时间】:2016-03-24 18:43:30
【问题描述】:
我不断收到此错误代码,当然行号不同。
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”的变量值。有没有办法让SAS接受。还是我只需要将我所有的“R”更改为一个数值?
如果它有助于我使用此代码输入 SAS:
proc import datafile="E:\2013\historical_data1_time_Q12013.txt"
out=TYr2013Q1
dbms=dlm
replace;
delimiter='|';
getnames=no;
run;
感谢您的帮助。非常感谢。
【问题讨论】:
-
我没有看到任何迹象表明您的数据是制表符分隔的,我看到了 PIPE |。 VAR4 由 PROC IMPORT 确定为数字,但在第 264808 行或您的数据中找到 R。我认为缺少的语句可能会有所帮助。
-
“R”是什么意思?比如“拒绝”?或者它是某种有意义的山谷?
-
R 表示它已经被默认太久以至于它被收回了。
标签: sas