proc表示输出百分位统计

问题描述 投票:0回答:1
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的基本统计数据。我怎样才能输出百分位数和总和?

sas output
1个回答
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;
© www.soinside.com 2019 - 2024. All rights reserved.