Как вставить значение #byval в имя файла png при использовании sgplot с оператором by в SAS

Я делаю несколько изображений PNG, используя sgplot и by утверждение как это:

ods html path="&graphPath" body="index.html"
    image_dpi=300 style=sciensano1 device=png;

ods graphics on / reset noborder imagename="boom"
    height=10cm width=16cm ;

title;footnote;
options byline;
proc sgplot data=sashelp.class;
    histogram height;
    by Sex;
    run;quit;

ods html close;

Это создает 1 HTML-файл (index.html)
и 2 файла png (boom1.png & boom3.png)

Мне интересно, можно ли назвать файлы png в соответствии со значениями by. Аналогично добавлению #byval в названии например.

В настоящее время номера добавляются автоматически в imagename от ods graphicsЯ хотел бы избавиться от чисел и использовать вместо этого byval.

Единственное решение, которое у меня есть, - это сделать все графики по отдельности, используя цикл% do в макросе, чтобы я мог параметризовать имя изображения и дать ему имя макропеременной. Проблема в том, что его гораздо сложнее реализовать и гораздо медленнее.

1 ответ

В моем SAS 9.4M4 такой функции нет SGPLOTHISTOGRAM варианты, ни в ODS GRAPHICSIMAGENAME или же INDEX,

В идеале, в будущем выпуске будет честь ODS #BYVAL а также #BYVAR варианты замещения.

ods graphics / imagename="boom#byval1";       * not real;
ods graphics / imagename="boom#byval(sex)";   * not real;

или же

ods graphics / imagename="boom" reset=index(#byval1); * not real;

Отступать:

GCHART Процедурные заявления, такие как VBAR поддержать name= вариант, который чтит #BYVAL вариант замещения.

vbar height / name="basename#byval1";  * creates gfx file whose name contains the by var value;

Похоже, что эта функция есть в v9.4M5- копайте: Будьте в курсе с помощью графики ODS.

Другие вопросы по тегам