У меня есть макрос, который рисует круговую диаграмму для предоставленного ID. Он в основном выбирает строку из таблицы, затем переносит полученную таблицу из одной строки и затем рисует круговую диаграмму. Он отлично работает, если я назову его для одного наблюдения (например,% StudPieChart (931123)). Вот код:работает макрос с каждым наблюдением в sas
%MACRO StudPieChart(id);
data projekt.temp;
set projekt.cwiczenia(keep=nrInd KOL1 KOL2 KOL3 aktywnosc where= (nrInd=&id));
drop nrInd;
run;
proc transpose data=projekt.temp out=projekt.temp;
run;
proc gchart data=projekt.temp;
pie _NAME_/sumvar=COL1 percent=inside;
run;
%MEND;
Теперь я хочу нарисовать диаграмму для не одного, а некоторого образца наблюдений. Поэтому я создал случайную выборку и попытался запустить макрос на шаге данных. Но это больше не работает, и я не знаю, почему.
Вот остальная часть кода:
proc surveyselect data=projekt.cwiczenia out=projekt.sample(keep=nrInd) sampsize=5 NOPRINT;
run;
data _NULL_;
set projekt.sample;
%StudPieChart(nrInd);
run;
Спасибо! Это работает отлично. Но не могли бы вы объяснить, что мы фактически поставили в качестве аргумента в функции выполнения? –
@Kuba_ аргумент CALL EXECUTE - это строка. В вашем случае это% nrstr (% StudPieChart (<значение nrind>)); Я оставил одну скобку в своем оригинальном посте, но я добавил ее. Я должен был протестировать, но вы не предоставили данные. См. Ссылку в моем ответе. Руководство пользователя SAS следует проконсультироваться раньше и часто. –