proc означает выходную процентиль статистики - PullRequest
0 голосов
/ 16 апреля 2019
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;

Из сгенерированного отчета я могу получить все процентили и суммы. но выходные данные просто предоставляют мне базовую статистику с N, MIN, MAX, MEAN и STD. Как я могу также вывести процентиль и сумму?

1 Ответ

0 голосов
/ 16 апреля 2019

Для 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...