sas append在宏中不起作用

时间:2013-03-14 00:09:25

标签: sas

您好我对SAS中的附加建议有疑问,

我试过

PROC APPEND BASE=SASUSER.mitsumjan12lag1
            DATA=SASUSER.mitsumjan12lag2;
RUN;

它有效。但是,当我在下面的宏中尝试同样的事情时,它不起作用。

%macro combineData(month=,part,datamonth=,datapart=);
  PROC APPEND BASE=SASUSER.mitsum&month.lag&part
              DATA=SASUSER.mitsum&datamonth.lag&datapart;
  RUN; 
%mend combineData;
%combineData(month=jan12,part=1,datamonth=jan12,datapart=2);

任何人都可以帮助我吗?谢谢。

1 个答案:

答案 0 :(得分:3)

让我印象深刻的第一件事是你错过=之后的part

%macro combineData(month=,part,datamonth=,datapart=);

位置参数(没有=的参数)必须放在关键字参数(含=的参数)之前。 只需将part参数更改为关键字参数(在其后添加=),如下所示:

%macro combineData(month=,part=,datamonth=,datapart=);

或者把它放在第一位,就像这样:

%macro combineData(part, month=,datamonth=,datapart=);