Pro c Таблица группировки данных - Три переменные - PullRequest
0 голосов
/ 08 марта 2020

У меня есть три переменные CONFIG, YEAR, TOT_SAL, мне нужна вся конфигурация в строках, годы в столбцах и на основе значений в строках и столбцах, мне нужна сумма третьей переменной TOT_SAL;

Пока я пытаюсь this;

 PROC TABULATE data=final OUT=work.final;
                CLASS CONFIG YEAR;
                TABLES CONFIG,YEAR;
                Var TOT_SAL;
                RUN;

Это дает мне кросс-таблицу для конфигурации и года, но вместо частоты конфигурации мне нужно SUM (TOT_SAL) в кросс-таблице.

1 Ответ

1 голос
/ 08 марта 2020

Вот пример того, как это сделать. Поскольку вы не предоставили данные, я использовал набор данных SASHELP.SHOES, чтобы этот пример можно было воспроизвести. Если вам нужна дополнительная помощь, обязательно опубликуйте фактические данные образца.

proc tabulate data=sashelp.shoes;
class region product;
var sales;
table region, product*(sales='')*(sum=''*f=dollar32.);
run;

Первый и второй примеры в документации SAS показывают другой метод, а также подробное объяснение каждого шага.

Самый простой ответ - добавить оператор VAR. Обратите внимание, что у вас есть tot_sal в операторе CLASS. Это неверно, поскольку оператор CLASS предназначен для категориальных / группирующих переменных, а не для суммирования переменных. Это go в VAR-операторе.

PROC TABULATE data=final OUT=work.final;
            CLASS CONFIG YEAR;
            VAR TOT_SAL;
            TABLES CONFIG, YEAR*TOTAL_SAL*(sum=''*f=dollar32.) ;

RUN;
...