【发布时间】:2016-09-18 02:15:16
【问题描述】:
我是 SAS 新手。
我想在 SAS 中读取一个 txt 文件。问题是文件在某些行中缺少数据。
例如数据是:
James Monroe Monroe Hall Virginia 58 4/28/1758 1816
John Quincy Adams Braintree Massachusetts 57 7/11/1767 1824 113,142 30.92%
Andrew Jackson Waxhaws Region South/North Carolina 61 3/15/1767 1828 642,806 55.93%
Martin Van Buren Kinderhook New York 54 12/5/1782 1836 763,291 50.79%
William Henry Harrison Charles City County Virginia 68 2/9/1773 1840 1,275,583 52.87%
我想要的列是“FullName”、“City”、“State”、“Age”、“DOB”、“Year”、“Number”和“Percentage”。
我的代码是:
infile 'C:\sasfiles\testfile.txt' missover dlm='09'x dsd
input FullName City State Age DOB Year Number PercVote;
Run;
但我得到了错误
9 CHAR Rutherford B. Hayes.Delaware ..Ohio..54.10/4/1822.1876.4,034,142.47.92% 73 区域 5776676676242246767046667676222004666003303323233330333303233323330332332 编号 2548526F2402E081953945C1712500099F89F9954910F4F18229187694C034C142947E925 全名=。城市=。状态=。年龄=。出生日期=。年份=54 数字=。 PercVote=1876 错误=1 N=19 注意:第 20 1-17 行中 FullName 的数据无效。 注意:第 20 行 19-32 中的城市数据无效。 注意:第 20 37-40 行中的州数据无效。 注意:第 20 46-55 行中的 Number 数据无效。 注意:第 20 62-70 行中 PercVote 的数据无效。
【问题讨论】:
-
这不可能是你的全部代码吗?你有日期变量的信息吗?还是字符串?
-
@Reeza,我没有信息。
-
尝试使用它们。并将 MISSOVER 更改为 TRUNCOVER。
-
@Reeza。不知道要不要在专栏里加
w.d。例如,input FullName $23.。如果我这样做,它可能会带来下一列的一些子字符串。对于原始输入文本文件,我应该对其进行预处理吗?否则,如何对齐列?
标签: sas