使用自定义文件名将数据从 SAS 导出到 Excel
Exporting data from SAS to Excel with a custom file name
我需要将数据集作为 .csv 文件从 SAS 导出到 Excel 2013。但是,我需要文件名是动态的。在这种情况下,我需要它显示为:
in_C000000_013117_65201.csv
其中字符串 "in_C000000_" 将保持不变,字符串“013117_”将是当天的日期,字符串“65201”将是数据集本身的行数。
如果您能提供任何帮助,我们将不胜感激!
谢谢!
这是我过去编写的修改过的宏,它几乎完全符合您的要求。如果您想用所需格式的日期替换 sysdate
,这也很容易做到:
%let path = [[desired destination]];
%macro exporter(dataset);
proc sql noprint;
select count(*) into: obs
from &dataset.;
quit;
data temp;
format date mmddyy6.;
date = today();
run;
proc sql noprint;
select date format mmddyy6. into: date_formatted
from temp;
quit;
proc export data = &dataset.
file = "&path.in_C000000_&date_formatted._%sysfunc(compress(&obs.)).csv"
dbms = csv replace;
run;
%mend exporter;
%exporter(your_dataset_here);
以以下格式生成数据集:in_C000000_020117_50000.csv
我需要将数据集作为 .csv 文件从 SAS 导出到 Excel 2013。但是,我需要文件名是动态的。在这种情况下,我需要它显示为:
in_C000000_013117_65201.csv
其中字符串 "in_C000000_" 将保持不变,字符串“013117_”将是当天的日期,字符串“65201”将是数据集本身的行数。
如果您能提供任何帮助,我们将不胜感激!
谢谢!
这是我过去编写的修改过的宏,它几乎完全符合您的要求。如果您想用所需格式的日期替换 sysdate
,这也很容易做到:
%let path = [[desired destination]];
%macro exporter(dataset);
proc sql noprint;
select count(*) into: obs
from &dataset.;
quit;
data temp;
format date mmddyy6.;
date = today();
run;
proc sql noprint;
select date format mmddyy6. into: date_formatted
from temp;
quit;
proc export data = &dataset.
file = "&path.in_C000000_&date_formatted._%sysfunc(compress(&obs.)).csv"
dbms = csv replace;
run;
%mend exporter;
%exporter(your_dataset_here);
以以下格式生成数据集:in_C000000_020117_50000.csv