我正在尝试将数据从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
代替以后在另一个系统中应用。
提前谢谢。
答案 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";