Proc Tabulate rowpctn отдельный столбец процентов - PullRequest
0 голосов
/ 27 июня 2019

Я новичок в SAS, попробуйте выяснить Proc Tabulate больше.

proc tabulate data=stem_camp1;
class gender pass SUBJECT;
table GENDER, SUBJECT*PASS*(n="count" rowpctn="%");
run;

У меня есть код, подобный приведенному выше.

enter image description here SAS рассчитывает процентное соотношение BIOS и MATH, поэтому, когда я суммирую 4%, он получает 100%

но я хочу, чтобы SAS вычислял процент BIOS и MATH отдельно.

например, вот так

       BIOS                 MATH
MALE - - 10 100%      10 50%  10 50%  

1 Ответ

1 голос
/ 27 июня 2019

Из подсказок (жирный):

Использование PCTN и PCTSUM

Статистика PCTN и PCTSUM может использоваться для расчета этих же процентов. Они позволяют вам вручную определять знаменатели. Статистика PCTN и PCTSUM выводит процент значения в одной ячейке таблицы по отношению к значению (используемому в знаменателе вычисления процента) в другой ячейке таблицы или к сумме значений в группе ячеек. По умолчанию PROC TABULATE суммирует значения во всех N ячейках (для PCTN) или во всех ячейках SUM (для PCTSUM) и использует суммированное значение для знаменателя. Вы можете контролировать значение, которое PROC TABULATE использует для знаменателя, с помощью определения знаменателя.

Вы помещаете определение знаменателя в угловые скобки (<и>) рядом со статистикой PCTN или PCTSUM. Определение знаменателя определяет, какие категории суммировать для знаменателя.

То есть вы захотите PCTN<PASS> вместо ROWPCTN.

Вот пример использования набора данных sashelp.cars

proc tabulate data=sashelp.cars;
  class type origin drivetrain;
  table type, origin*drivetrain*(n pctn<drivetrain>);
run;

enter image description here

Просто чтобы прояснить, трансмиссия ALL означает Полный привод , а не Универсальная переменная ALL .

...