Графики SAS добавляют автоматический номер рисунка к заголовку или сноске

Привет, я рисую некоторые данные, используя опцию 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.

Ваша помощь будет принята с благодарностью. Спасибо


person user877204    schedule 27.02.2012    source источник


Ответы (2)


Имейте две переменные BY, где первая переменная BY равна «01», «02» и т. д., а затем используйте:

title "Figure #byval1. Plot of #byval2";
person DavB    schedule 28.02.2012

это может быть достигнуто с помощью макроса. Ниже приведен пример.

    %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;  
person Robbie Liu    schedule 27.02.2012