Графики 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.
Ваша помощь будет принята с благодарностью. Спасибо
2 ответа
Решение
Иметь две переменные BY, где первая переменная BY - "01", "02" и т. Д., А затем использовать:
title "Figure #byval1. Plot of #byval2";
Это может быть достигнуто с помощью макроса. Ниже приведен пример.
%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;