0

こんにちは、BY GROUP オプションを使用していくつかのデータをプロットし、各プロットを個別のファイルに保存しています。各プロットのタイトルまたは脚注に自動図番号を追加したいと考えています。

3 つの BY GROUP 変数レベルがあるとしましょう。したがって、3 つのプロットが 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 を追加しましたが、開始値を指定できるように自動化し、BY GROUP 変数の最後のレベルまで自動的に 1 ずつインクリメントしたいと考えています。

どうぞよろしくお願いいたします。ありがとう

4

2 に答える 2

1

最初のBY変数が「01」、「02」などである2つのBY変数を用意し、次を使用します。

title "Figure #byval1. Plot of #byval2";
于 2012-02-28T07:18:11.527 に答える
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 に答える