Import 如何使用sas宏导入和导出多个数据?

Import 如何使用sas宏导入和导出多个数据?,import,dataset,export,sas,Import,Dataset,Export,Sas,嗨,我正在尝试在sas中对以下函数执行宏 我有多个sas文件(apr12part1,apr12part2,…,aug12part1,aug12part2),对于每个文件(例如:apr12part1),我将执行一些过程,这将给我三个输出(例如:apr12part1out1,apr12part1out2,pr12part1out3) 我试图使用宏,但不是很成功。有人能帮我吗?非常感谢你! 我使用的代码是这样的 %macro test(month=,part=); ...FROM EC10000

嗨,我正在尝试在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(month=apr12,part=1)

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

proc export data=SASUSER.Out1 
     outfile="G:\Output\Output1_&month._&part..csv" dbms=csv replace;
注意
&part
变量后面有两个“点”;第一个是连接运算符,第二个是文件名的一部分


如果代码未显示,您可能会遇到类似的问题,请检查此问题。

谢谢!我尝试了您的方法,但日志给了我一些错误,无法完成运行警告:当前正在处理的带引号的字符串已超过262个字符。你可能有不平衡的引号。好吧,这个消息意味着你的程序中有一个游离的单引号或双引号。如果您以交互方式执行此操作,您的会话可能会出错。您可以通过提交以下代码来尝试清除它:
*'*“;*);*/;%mend;run;
(被称为SAS“魔术字符串”)。我在想引号内的月份是否重要?这在SAS中是否有效?我应该将代码放在哪里?在宏的底部,就在%mend之前?那么我是否需要另一个%mend?不,该代码不应该是任何程序的一部分。它只是“提交”的内容“当您收到这样的警告消息时,请手动执行。您最好保存编程代码并重新启动SAS会话。