csv - 如何在 SAS 中导入多行 CSV

标签 csv sas

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

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

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

最佳答案

答案可能取决于导致换行出现的原因、换行的类型,还可能取决于您运行 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。

关于csv - 如何在 SAS 中导入多行 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3709970/

相关文章:

python - 从 S3 解压缩文件,写入 CSV 文件并推送回 S3

python - CSV 编写器在单独的列中显示每个字符

sas - 通过更新语句优化主数据集中仅更新缺失值

sas - 如何使用sas检查字符串的第一个字符是否为小写字母

javascript - 读取服务器端 CSV 文件

java - 从数组列表中删除某些值

sas - 将 SAS 数据列转换为宏变量?

SAS 数字信息与长度

java - Android 写入 CSV RAM 问题

sas - 使 proc 制表的输出垂直?