我想在SAS中导入一个原始数据集,其第一列以" C" .But开头 我的代码有问题,因为ERROR在日志窗口中不断弹出: -
有人可以帮我实现吗??
样本数据集:=
H 1095 NJ 06DEC84
C 01DEC11 $45.0
C 01AUG11 $37.5
H 1096 CA 01SEP83
我的代码: -
Filename hca2 'C:\Users\Desktop\SAS\datasets\HCA_file.txt';
Data assign8.hca2;
Infile hca2;
Input@1 FC $1.;
If FC = 'C' then
Input @3 DOB @11 Transaction_Value ;
Run;
答案 0 :(得分:2)
错误(可能很好地添加到问题中)可能来自DOB的输入而没有相关的信息。以下内容可能有所帮助。
attrib dob informat=date9. format=date9.;
信息用于处理输入,格式用于输出。
一个简单的INPUT
语句将读入一些数据并立即跳到下一行。
当处理具有多个输入语句的单行数据时,较早的输入语句应使用尾随@符号来指示“保持输入”并使输入处理器不立即进入下一行。相反,输入处理器的“活动位置”将保留在用于输入的最后位置的同一行中。
如下更改代码将强制输入处理器保持在同一行。
input @1 FC $1. @;
注意:当下一个隐式数据步骤迭代发生时,输入处理器将跳到下一行。这意味着当您的if
失败时,数据步骤中的下一次迭代将从文件的下一行读取。
通过使用两个@符号(input .... @@;
)