SAS:使用空白观察堆叠CSV文件

时间:2014-01-30 21:01:50

标签: csv import sas

我和同事一起工作,用Google搜索过,编辑了这个代码一百万次,我无法让它工作。

基本上,我正在尝试将多个CSV文件堆叠到一个SAS数据集中。我之前在SAS中创建了能够找到文件的所有名称[ dirlist1 中的变量 fname ]。我一直试图让这段代码工作,但问题是这些CSV文件中的一些观察结果是空白的。因此,例如列“apples”(见下文)将使该列的大部分空白 - 但偶尔会有数据。现在这段代码读入了正确的数据,但是当观察结果是空白时(例如,对于观察,“苹果”是空白的 - 它将我的数据移到左边而不是将该部分留空。是否有我遗漏的内容当前的代码可以解决这个问题吗?

基本上它正在跳过文本文本,文本,文本,文本<它正在跳过逗号之间的空白并继续,我想要那么空白。

data all_data (drop=fname);
  length bananas $256;
  length apples $25;
  length grapefruit $10;
  length berries $10;
set dirlist1;
filepath = "&dirname"||fname;
infile dummy filevar = filepath length=reclen firstobs=2 dlm=',' end=done missover;
do while(not done);
  myfilename = fname;
  input bananas apples grapefruit berries;
output;
  end;
 run;

编辑: 需要注意的是,我基于在基于UCLA的网站1

上发布的代码来构建此代码

1 个答案:

答案 0 :(得分:2)

DSD修饰符添加到您的infile语句中。

infile dummy filevar = filepath length=reclen firstobs=2 dlm=',' end=done missover DSD;

这将告诉它更改连续分隔符的默认处理(并且还允许它正确处理带有嵌入分隔符的带引号的字段)。

有关详细信息,请参阅the documentation on INFILE