SAS:包括输出中的宏参考? [重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SAS:包括输出中的宏参考? [重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

在SAS中,有没有办法在声明显式输出时引用宏?当我使用下面的代码时,它会给我一个错误,它试图使用宏“&fname”作为在数据步骤开始时声明的输出名称。 (作为奖励,有没有办法将输出数据集的名称声明为某种循环,所以我不必键入cd2002,cd2003等...)。

data cd2002 cd2003 cd2004 cd2005;
    set cd;
    do i = 2002 to 2005;
        %let fname=cats(cd,i);
        if year=i then do; output &fname; end;
    end
run;
答案

写一个宏例程。这是让您为您“编写”代码的方法。有一个宏处理器扩展代码,然后将其提交给主解释器。

%macro split_cd(to,from);
%local i;
data
   %do i=&to %to &from;
      cd&i
   %end;
;
set cd;
%do i=&to %to &from;
      if year=&i then output cd&i;
%end;
run;
%mend;

使用mprint选项查看生成和提交的代码:

options mprint;
%split_cd(2002,2005)

以上是关于SAS:包括输出中的宏参考? [重复]的主要内容,如果未能解决你的问题,请参考以下文章

SAS中的宏变量开头和结尾分别是啥命令?

SAS 程序冷知识——如何在启动sas程序时自动执行一些宏?

在R中重新创建SAS混合模型输出(包括F测试)

R如何编写像SAS这样的宏

怎样控制SAS ODS RTF输出中的字体,位置

删除 SAS 中的重复子字符串