- data class;
- set sashelp.class;
- run;
- ods output summary=sum1;
- proc means data=class n mean std min max stackodsoutput;
- var age;
- class sex;
- run;
- ods output close;
- data sum2;
- set sum1;
- stat_n=cats(N);
- stat_mean=cats(put(mean,12.2));
- stat_std=cats(put(stddev,12.2));
- stat_mnsd=cats(stat_mean,'(',stat_std,')');
- stat_min=cats(min);
- stat_max=cats(max);
- stat_minmax=cats(stat_min,'~',stat_max);
- array _stat_ stat_n stat_mnsd stat_minmax;
- do over _stat_;
- __idx=_i_;
- __nam=upcase(scan(vname(_stat_),2,'_'));
- __lab=vlabel(_stat_);
- __val=_stat_;
- output;
- end;
- keep sex variable __idx __nam __lab __val;
- label stat_n='N' stat_mean='Mean' stat_std='SD' stat_mnsd='Mean(SD)'
- stat_min='Min' stat_max='Max' stat_minmax='Min-Max';
- run;
可以看到,在sum2数据集中,除了在keep语句中出现了分类变量sex,其余语句均未引用原数据集的变量,这样处理耦合性低,稍加处理即可封装成宏使用。


雷达卡




京公网安备 11010802022788号







