【问题标题】:SAS Invalid data for a variableSAS 变量的无效数据
【发布时间】: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


【解决方案1】:

此示例说明如何使用 MISSING 语句将字符 R 作为缺失的 R .R 读取到使用 PROC IMPORT 的数值变量中。

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;

【讨论】:

  • 感谢您的回复!在我的数据中,“R”代表房子是否被安置。那么通过使用 MISSING 语句,它仍然计算“R”的数量吗?
  • 我问的原因是因为 Var4 列中的任何数字都意味着他们拖欠贷款。越来越多的数字只是说明它被默认了多长时间。当他们在默认区域中的时间太长以至于房子被占用时,就会给出“R”。所以我希望每个 R 都计入默认总数。如果这有意义的话。
  • PROC IMPORTED 根据猜测行猜测 VAR4 是数字。显然,第一个在第 264808 行。缺少值 .R 将允许您汇总数据并使用 .R 计算行数。但是,您已经从阅读数据跃升为总结,也许这应该是一个新话题。
  • 非常感谢。一旦我加载并整理了所有数据集,我将发布一个新问题,我将发布一个新问题!感谢您的所有帮助!
  • 当你使用missing r;有 r 的行会发生什么?他们会消失吗?因为我不想让他们离开。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多