如何将格式化的.csv数据导入SAS?

时间:2019-05-01 08:33:36

标签: import sas

我需要将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;```

1 个答案:

答案 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;