你能制作一个像libref一样工作的fileref吗?

时间:2014-03-20 20:05:05

标签: sas

如果要将数据集保存到永久库中并且不想继续重新键入地址,可以使用LIBNAME

LIBNAME d "C:\<file path>\My datasets"
DATA d.data1;
    ...
RUN;

保存输入的另一个功能是使用FILENAME

FILENAME f "C:\<file path>\My datasets\data1.txt"
DATA d.data1;
    INFILE f;
    ...
RUN;

但这仅适用于一个特定文件,而d.可用于任意数量的数据集。是否有方便的方法来调整FILENAME或不同的函数/ PROC,以便像f.一样使用它?例如:

DATA d.data1;
    INFILE f."data1.txt";
    ...
RUN;
DATA d.data2;
    INFILE f."data1.txt";
    ...
RUN;
DATA d.data3;
    INFILE f."data1.txt";
    ...
RUN;

2 个答案:

答案 0 :(得分:1)

您可以设置宏变量的路径,然后在文件路径调用中使用宏变量

示例:

%let path = M:\file\path;

DATA d.data1;
infile = /*include path*/ "&path.\file_name.csv"
....
run;

答案 1 :(得分:1)

如果您打算在目录中使用具有特定模式的所有文件,则另一个选项是使用带通配符的fileref。

filename f "c:\temp\*.txt";
data d.data1;
infile f;
.....
run;

您的操作系统的任何正常通配符组合都应该有效(因此,&#34;数据* .txt&#34;,&#34;数据_?。txt&#34;等等适用于Windows)。