我有一个宏,它为所提供的ID绘制饼图。它基本上从表中选择一行,然后转置获得的一行表,然后绘制饼图。如果我将其称为一次观察(例如,%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;
答案 0 :(得分:2)
您可以使用CALL EXECUTE。
data _NULL_;
set projekt.sample;
call execute('%nrstr(%StudPieChart('||nrInd||'));');
run;