Как вставить значение #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 такой функции нет SGPLOT
HISTOGRAM
варианты, ни в ODS GRAPHICS
IMAGENAME
или же 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.