proc means data = data1 stackODSoutput MIN P10 P25 P50 P75 P90 MAX N NMISS SUM nolabels maxdec=3;
var var1 var2;
output out = output;
run;
从生成的报告中,我可以获得所有百分比和SUM。但是输出数据仅提供了N,MIN,MAX,MEAN和std的基本统计信息。 如何输出百分位数和总和?
答案 0 :(得分:0)
对于output
中的proc means
数据集,您需要在output
语句中指定所需的统计信息。将proc
语句视为仅控制视觉输出。尝试以下方法:
proc means data=sashelp.cars;
var horsepower MPG_City MPG_Highway;
output out=output
sum=
mean=
median=
std=
min=
max=
p10=
p25=
p75=
p90=
/ autoname
;
run;
请注意,=
之后没有任何统计信息。 autoname
选项会自动命名统计变量。
为便于阅读,我们可以更改输出表的格式。所有变量的命名约定为<variable>_<statistic>
。知道了这一点,我们可以对表进行转置,从名称中分离出变量和统计信息,然后将其重新转置为更好的格式。
proc transpose data=output out=output_transposed;
var _NUMERIC_;
run;
data _want(index=(variable) );
set output_transposed;
Stat = scan(_NAME_, -1, '_');
Variable = tranwrd(_NAME_, cats('_', Stat), '');
keep Variable Stat COL1;
rename COL1 = Value;
run;
proc transpose data=_want out=want(drop=_NAME_);
by variable;
id stat;
var Value;
run;