【问题标题】:Import .csv file to SAS, clean NULLs将 .csv 文件导入 SAS,清除 NULL
【发布时间】:2016-01-13 09:59:53
【问题描述】:

我正在使用 PROC IMPORT 将 .csv 文件导入 SAS,它工作正常。但是,当我通过从 SQL 导出生成 .csv 文件时,我的一些定量列具有 NULL。当 SAS 遍历这些列时,即使 1000 个条目中只有 1 个为 NULL(SAS 认为是字符串),他也会将这些列分类为字符。

有什么方法可以告诉 SAS NULL 代表一个缺失值并且应该相应地处理?

谢谢

【问题讨论】:

    标签: sql csv import sas


    【解决方案1】:

    不适用于 PROC IMPORT。 您可以预处理文件并将字符串“NULL”转换为实际的空白空间。

    data _null_;
       infile 'my.csv' dsd truncover length=ll column=cc ;
       outfile 'new.csv' dsd ;
       length cell $5000 ;
       do while (cc < ll);
         input cell @;
         if cell='NULL' then cell=' ';
         put cell @;
       end;
       put;
    run;
    

    或者您可以使用数据步骤读取文件并创建将“NULL”转换为缺失的用户定义信息。

    proc format ;
      invalue nulls 'NULL'=. ;
    run;
    data _null_ ;
       infile 'my.csv' dsd ;
       informat mynumber nulls. ;
       input mynumber ;
    run;
    

    【讨论】:

      【解决方案2】:

      感谢您的反馈。我最终使用了以下内容:

      data lib.project;
      set lib.project;
      array change _character_;
      do over change;
      if change="NULL" then change=.;
      end;
      run;
      

      【讨论】:

        猜你喜欢
        • 2015-02-22
        • 1970-01-01
        • 1970-01-01
        • 2021-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-05
        • 1970-01-01
        相关资源
        最近更新 更多