【问题标题】:How to import multiline CSV in SAS如何在 SAS 中导入多行 CSV
【发布时间】:2010-09-14 14:42:11
【问题描述】:

我有一个这种格式的文件。

abc;def;"ghi
asdasd
asdasd
asd
asd
aas
d
"

现在我想用 SAS 导入它。如何处理多行值?

【问题讨论】:

    标签: csv sas


    【解决方案1】:

    答案可能取决于导致出现换行符的原因、它们是什么类型的换行符,还可能取决于您运行 SAS 的操作系统以及您使用的 SAS 版本。不知道这些问题的任何答案,这里有几个建议:

    首先,您可以在数据步骤中尝试以下 infile 语句:

    infile "C:\test.csv" dsd delimiter=';' termstr=crlf;
    

    termstr=crlf 告诉 SAS 仅使用 Windows 换行符来触发新记录。

    或者,您可以让 SAS 逐字节预处理您的文件,以确保替换成对引号中的任何换行符(可能带有空格):

    data _null_;
      infile 'C:\test.csv' recfm=n;
      file 'C:\testFixed.csv' recfm=n;
      input a $char1.;
      retain open 0;
      if a='"' then open=not open;
      if (a='0A'x or a='0D'x) and open then put '00'x @;
      else put a $char1. @;
    run;
    

    本文改编自here,供大家参考。您可能需要稍微修改一下此代码才能使其正常工作。这个想法是,然后您将使用标准数据步骤将生成的 csv 读入 SAS。

    【讨论】:

    • 那是一个艰难的过程。谢谢 sasfrog。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-12
    相关资源
    最近更新 更多