如何在SAS中导入多行CSV

时间:2010-09-14 14:42:12

标签: csv sas

我收到了这种格式的文件。

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

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

1 个答案:

答案 0 :(得分:4)

答案可能取决于导致换行的原因,它们是什么类型的换行,也可能取决于您运行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。