首页 > 解决方案 > 如何打开以变量值命名的文件,该变量的值在 SAS 中跨行更改

问题描述

我正在尝试在 SAS 中打开一个文件,其中文件的名称根据变量的值更改为每一行。我要打开的所有文件都在同一个目录中,以一年中的某一天命名为数字(127.csv、128.csv、129.csv 等)。我的 SAS 数据有一个名为“day”的列,对于每一行,我想打开名为那一天的文件,从该文件中提取一个值并将其添加到我的原始文件中。当名称随变量的值更改每一行时,打开文件的最佳方法是什么?如果不清楚,请参阅我的附加数据。谢谢。

标签: sas

解决方案


通常,如果您想从列表中读取一组文件,请使用语句FILEVAR=上的选项。INFILE

data want;
  set have ;
  length fname $200 ;
  fname = catx('/',"&path",cats(day,'.csv'));
  infile csv filevar=fname dsd firstobs=2 end=eof truncover ;
  do while (not eof);
    input ..... ;
    output;
  end;
run;

将读取 CSV 文件所需的任何代码放入 DO 循环中。确保使用 OUTPUT 语句明确写出观察结果,因为数据步骤的每次迭代都将处理一个完整的文件。


推荐阅读