0

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

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

4

1 回答 1

1

SAS基地

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 数据集成工作室

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

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

    数据;设置 &_INPUT.; rc=filename("fid",路径); 跑;

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

  • 在“外部文件”的属性下,选项卡“文件位置”,在“文件名:”下,简单地写“fid”(不带引号),并在同一选项卡上的“文件名引用”下,选择“文件名周围没有引号”。
于 2015-07-02T11:40:49.500 回答