使用libname从SAS打印CSV文件

使用libname从SAS打印CSV文件,csv,sas,proc,proc-sql,Csv,Sas,Proc,Proc Sql,我正在尝试从使用PROC SQL创建的表中将数据从SAS导出到CSV文件中。(测试数据是使用procsqlselect语句创建的) 我尝试了以下代码: 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,

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

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
作为另一个系统中以后的应用程序。
提前感谢。

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

libname
用于SAS数据集<代码>文件名用于文件

filename fileout "C:\Users\Outbox\test_data.csv";
proc export data=test_data dbms=csv replace outfile=fileout;
run;
如果只想指定目录,也可以使用宏变量,类似于多余的答案。但不要在上面加引号

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

在任何一种情况下,您都可以在一个位置指定文件名或宏变量,然后在另一个位置使用它,它们不必是连续的,就像libnames一样。

工作得很好!谢谢