proc表示输出百分比统计

时间:2019-04-16 13:35:34

标签: sas output

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的基本统计信息。 如何输出百分位数和总和?

1 个答案:

答案 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;