1

嗨我正在尝试在 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

%test(月=apr12,part=1)

4

1 回答 1

2

尝试添加“点”以将宏变量连接成一个完整的字符串。此外,您必须使用双引号,而不是单引号。像这样的东西:

proc export data=SASUSER.Out1 
     outfile="G:\Output\Output1_&month._&part..csv" dbms=csv replace;

&part请注意,变量后面有两个“点” ;第一个是连接运算符,第二个是文件名的一部分。

您可能对未显示的代码有类似的问题,所以也要检查一下。

于 2012-11-27T18:45:15.427 回答