我需要将2GB的大型csv导入SAS。有些变量通常在Excel中格式化,因此,数字具有数千个分隔符(例如1,234.56)。导入SAS时,错误为:
NOTE: Invalid data for Settlement_Price in line 111 26-30.
并且该字段为空。由于文件太大,我无法在Excel中更改格式。如何导入原始号码?最好的12。或12.不起作用。
我尝试导入12.或最佳12。
%let _EFIERR_ = 0; /* set the ERROR detection macro variable */
infile 'C:\OP\EoD.csv' delimiter = ',' MISSOVER DSD lrecl=32767 firstobs=2 ;
informat RIC $12. ;
informat Settlement_Price best32. ;
informat Open_Interest best32. ;
informat Trade_Date ddmmyy10. ;
informat Volume best32. ;
format RIC $12. ;
format Settlement_Price best12. ;
format Open_Interest best12. ;
format Trade_Date ddmmyy10. ;
format Volume best12. ;
input
RIC $
Settlement_Price
Open_Interest
Trade_Date
Volume
;
if _ERROR_ then call symputx('_EFIERR_',1); /* set ERROR detection macro variable */
run;```
答案 0 :(得分:1)
假定CSV文件的格式正确,并且在包含逗号的值两边加上引号,则只需要告诉SAS在读取这些字段时使用COMMA格式即可。
data want;
infile 'C:\OP\EoD.csv' delimiter = ',' TRUNCOVER DSD lrecl=32767 firstobs=2 ;
length
RIC $12
Settlement_Price 8
Open_Interest 8
Trade_Date 8
Volume 8
;
informat
Settlement_Price comma.
Open_Interest comma.
Trade_Date ddmmyy.
Volume comma.
;
format Trade_Date ddmmyy10. ;
input
RIC
Settlement_Price
Open_Interest
Trade_Date
Volume
;
run;