使用libname从SAS打印CSV文件

时间:2017-02-16 12:12:36

标签: csv sas proc proc-sql

我正在尝试将数据从SAS导出到我使用PROC SQL创建的表格中的CSV文件中。 (test_data是使用PROC SQL Select语句创建的) 我尝试了以下代码:

LIBNAME libout "C:\Users\Outbox";
proc export data=test_data dbms=csv replace outfile="&libout.\test_data.csv";
run;

运行此代码时,剪切出现以下错误:

ERROR: Physical file does not exist, C:\windows\system32\&libout.\test_data.csv.

我知道我可以直接使用outfile的字符串指定路径,但我尝试使用LIBNAME代替以后在另一个系统中应用。 提前谢谢。

2 个答案:

答案 0 :(得分:1)

libname适用于SAS数据集; filename用于文件。

filename fileout "C:\Users\Outbox\test_data.csv";
proc export data=test_data dbms=csv replace outfile=fileout;
run;

如果您只想指定目录,也可以使用宏变量,类似于Superfluous的答案。但是不要在那里加上引号。

%let outdir = c:\users\outbox;
proc export data=test_data dbms=csv replace outfile="&outdir.\test_data.csv";
run;

在任何一种情况下,你都可以在一个位置指定文件名或宏变量,然后在一个非常不同的位置使用它们,它们不必是顺序的 - 就像libnames一样。

答案 1 :(得分:0)

如果要存储SAS数据集,可以使用libname。在这种情况下,您要保存csv文件,因此您只需要一个宏:%let libout = "C:\Users\Outbox";