使用 libname 从 SAS 打印 CSV 文件

Print a CSV file from SAS using libname

我正在尝试从我使用 PROC SQL 创建的 table 将数据从 SAS 导出到 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 以便稍后在另一个系统中应用。 提前致谢。

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

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 一样。