>我有一个宏,它为提供的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;
您可以使用 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