您好我正在尝试使用sas中的宏来执行以下功能
我有多个sas文件(apr12part1,apr12part2,...,aug12part1,aug12part2),对于每个文件(例如:apr12part1),我会做一些过程,它会给我三个输出(例如:apr12part1out1,apr12part1out2 ,pr12part1out3)。
我试图使用宏,但不是很容易。有人可以帮我吗?非常感谢你! 我使用的代码是这样的
%macro test(month=,part=);
...FROM EC100002.&month_part_&part
...
proc export data=SASUSER.Out1 outfile='G:\Output\Output1_&month_&part.csv' dbms=csv replace;
proc export data=SASUSER.Out2 outfile='G:\Output\Output2_&month_&part.csv' dbms=csv replace;
proc export data=SASUSER.Out3 outfile='G:\Output\Output3_&month_&part.csv' dbms=csv replace;
run;
%mend test
%试验(一个月= apr12,部分= 1)
答案 0 :(得分:2)
尝试添加“点”以将宏变量连接成一个完整的字符串。此外,您必须使用双引号,而不是单引号。像这样:
proc export data=SASUSER.Out1
outfile="G:\Output\Output1_&month._&part..csv" dbms=csv replace;
注意&part
变量之后有两个“点”;第一个是连接运算符,第二个是文件名的一部分。
您可能在未显示的代码中遇到类似问题,因此请检查它。