在 SAS 中对每个观察运行宏



>我有一个宏,它为提供的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

最新更新