我的数据如下所示(这是一个非常小的子集)。这是一个实际上是列分隔的CSV文件,因此可以在Excel中轻松读取。
ParentFlag CurrentBalanceF ValuationAmountO ValuationDateO ValuationDateC
PARENT 85481.49 145000 13/02/2004 30/04/2009
我正在尝试使用以下代码导入我的数据。
filename indata '&location.\AE&CO - inputs - 2014 09 30 Sept.csv';
Data treasury;
Infile indata firstobs=2 dlm=" "
/* delimiter=','*/
;
/* Length ext_acno $14.;*/
/* informat original_val_dt date9. current_val_dt date9. ;*/
input pcd_acno $ 1 ext_acno $ 2 loan_acno $ 3 acno $ 4 account_bal $ 5 trust_id $ 6 parentflag $ 7 account_bal_f 8
original_val_amt 9 original_val_dt 10 current_val_dt 11 original_val_type 12
current_val_type 13 indexed_ltv 14 original_ltv_wo_fees 15 latest_ltv 16 account_status_rbs $ 17 ;
;
run;
但是,日志会给我错误,数据无法正确导入。我的数据集包含只有一个字符可见的字段(例如,上面的parentflag字段只有0)。
我尝试使用导入向导执行此操作,并且它在某种程度上有效,但是日志会出现“导入失败”消息,尽管我的表格填充正确...
理想情况下,我想让infile语句有效,因为它感觉像是一个更坚固的替代品。现在,它只是没有表现,我不知道为什么!有人可以帮忙吗?
答案 0 :(得分:0)
您需要在美元符号后删除这些数字。
input pcd_acno $ ext_acno $ loan_acno $ ... ;
这些数字只会让SAS感到困惑,它们不能用于任何目的。他们让SAS认为您正在尝试进行某种列输入,但您希望在此输入列表。列是指一个字符长的列,而不是您使用它的意思; " CSV"表示"逗号分隔值",而不是"列"。
IE:
ABCDE FGHIJ KLMNO
上面的第5列是" E",第9列是" H"。