运行 一个包含 sas 中每个观察值的宏

running a macro with each observation in sas

我有一个宏可以为提供的 ID 绘制饼图。它基本上从table中选择一行,然后转置得到的一行table,然后绘制饼图。如果我调用它进行一次观察(例如 %StudPieChart(931123)),它工作得很好。这是代码:

%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;

您可以使用 CALL EXECUTE。

data _NULL_;
   set projekt.sample;
   call execute('%nrstr(%StudPieChart('||nrInd||'));');
   run;

RTM:http://support.sas.com/documentation/cdl/en/lefunctionsref/69762/HTML/default/viewer.htm#p1blnvlvciwgs9n0zcilud6d6ei9.htm