使用自定义文件名将数据从SAS导出到Excel
我需要将数据集作为.csv文件从SAS导出到Excel 2013。但是,我需要文件名是动态的。在本例中,我需要它显示为:使用自定义文件名将数据从SAS导出到Excel,sas,filenames,export-to-excel,excel-2013,Sas,Filenames,Export To Excel,Excel 2013,我需要将数据集作为.csv文件从SAS导出到Excel 2013。但是,我需要文件名是动态的。在本例中,我需要它显示为: in_C000000_013117_65201.csv 其中,字符串“in_C000000_”将保持不变,字符串“013117_”将是当天的日期,字符串“65201”将是数据集本身的行计数 如果您能提供任何帮助,我们将不胜感激 谢谢 这是我在过去编写的一个修改过的宏,它几乎完全符合您的要求。如果要用所需格式的日期替换sysdate,也很容易: %let path = [[d
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
path
应该是宏的参数,而不是全局变量。您也不需要压缩
,因为压缩成
应该会自动处理(至少9.3+,我不记得9.1或9.2中可能没有)。谢谢!到目前为止,这似乎对我有效。要将日期显示为013117而不是2017年1月31日,需要进行哪些更改?您只需要设置日期变量的格式。可能有一种比我在中编辑的格式更短的格式,但上面的方法很有效。