0

您好我正在使用 BY GROUP 选项绘制一些数据,并将每个图保存到单独的文件中。我想为每个情节标题或脚注添加一个自动数字编号。

假设我有三个 BY GROUP 变量级别,所以我将 3 个图保存到三个文件中。我想添加以下标题或脚注:

title "Figure 01. Plot of #byval"; or footnote "Figure 01. Plot of #byval"; 
title "Figure 02. Plot of #byval"; or footnote "Figure 02. Plot of #byval"; 
title "Figure 03. Plot of #byval"; or footnote "Figure 03. Plot of #byval"; 

在这里,我手动添加了 01、02 和 03,但我想自动化它,以便我可以给出一个起始值并自动递增 1,直到 BY GROUP 变量的最后一级。

对你的帮助表示感谢。谢谢

4

2 回答 2

1

这可以通过宏来完成。下面是一个例子。

    %macro bygraph(dset=,byvar=);

     %do i=1 %to %sysfunc(countw(&byvar));
     %let byvari=%sysfunc(scan(&byvar,&i));
       proc sort data=&dset; 
        by &byvari;
       run;

      ods rtf file="plot&i..rtf" startpage=no; 
/*output,modify as you need.the graph will be stored to plot1.rtf, plot2.rtf... */
       proc plot data=&dset;
        by &byvari;
        plot .... ;  /* your plot statements */
        title "Figure &i Plot of &byvari"; 
       run;
       quit;
      ods rtf close;
     %end;

     %mend;

    /* run macro, fill in data set, byvars (separated by blanks) as parameters */
    %bygraph(dset=dataset, byvar=var1 var2 var3); run;  
于 2012-02-27T19:52:56.333 回答
1

有两个 BY 变量,其中第一个 BY 变量是“01”、“02”等,然后使用:

title "Figure #byval1. Plot of #byval2";
于 2012-02-28T07:18:11.527 回答