如何在SAS中动态导入外部文件

时间:2015-07-02 11:38:51

标签: sas enterprise-guide

假设您事先并不知道需要导入的文件的路径,但是您在运行时创建的表中定义了路径。使用宏导入它是不正确的,因为宏在运行时生成,因此宏值无法到达将在运行时创建的数据。

那么,如何在SAS Base(SAS EG,SAS DI,...)中导入一个外部文件,只有在运行时才知道你的路径?

1 个答案:

答案 0 :(得分:1)

SAS Base

data test;
  Path='/path/to/your/csv/file.csv';
run;

data _null_;
  set test;
  rc=filename("fid",Path);
run;

data csvData(drop=path);
  infile fid;
  input ...
run;

SAS Data Integration Studio

假设您已经创建了包含csv文件路径的SAS数据集。然后你需要:

  • 添加"用户书面代码"转换(在"数据 - >用户书面代码"),
  • 将SAS数据集(包含csv文件的路径)连接到"用户书面代码转换"。
  • 转到"用户书面代码"属性,选项卡"代码" (保持"代码生成模式:User Written Body"),并在代码体中写下以下文本正上方%rcSet(& syserr ...(有时很难看到,但自动生成代码)有一个灰色的背景,你的代码有完整的白色背景):

    data null ;   set& _INPUT。;   RC =文件名(" FID",路径); 运行;

  • 现在创建一个新的"外部文件",设置你想要的元数据(我假设你知道你期望的csv文件格式),

  • "外部文件"属性,选项卡"文件位置","文件名:",简单地写" fid" (没有引号),并在"文件名称引用"在同一选项卡上,选择"文件名周围没有引号"。