TABULATEプロシジャで列の合計に対するパーセンテージを求める方法
[OS] ALL
[リリース] SAS 8.2以降
[キーワード] Base, TABULATE, PCTN, COLPCTN, COLPCTSUM
[質問]
TABULATEプロシジャで下記のような表を作りました。 ------------------------------------------------------------ | | a1 | | |-------------------------| | | はい | いいえ | | |------------+------------| | | PctN | PctN | |--------------------------------+------------+------------| |group |gender | | | |---------------+----------------| | | |A |男 | 30.00| 10.00| | |----------------+------------+------------| | |女 | 10.00| 10.00| | |----------------+------------+------------| | |All | 40.00| 20.00| |---------------+----------------+------------+------------| |B |gender | | | | |----------------| | | | |男 | 10.00| 10.00| | |----------------+------------+------------| | |女 | 10.00| 10.00| | |----------------+------------+------------| | |All | 20.00| 20.00| |--------------------------------+------------+------------| |All | 60.00| 40.00| ------------------------------------------------------------ 上記の表を作成したプログラムは、下記のとおりです。 PROC FORMAT; VALUE $genderf '1' = '男' '2' = '女' ; VALUE ynf 1 = 'はい' 2 = 'いいえ' ; RUN; DATA sample; INPUT group $ gender $ a1 @@; FORMAT gender genderf. a1 ynf.; CARDS; A 1 2 A 1 1 A 1 1 A 1 1 A 2 2 A 2 1 B 1 1 B 2 2 B 2 1 B 1 2 ; RUN; PROC TABULATE DATA=sample; CLASS group gender a1; TABLES (group*(gender ALL)) ALL,a1*PCTN / MISSTEXT='0' PRINTMISS; ; RUN;
[回答]SAS 8から追加された統計量キーワードCOLPCTNを使用して、列に対するパーセンテージを求められます。 PROC TABULATE DATA=sample; CLASS group gender a1; TABLES (group*(gender ALL)) ALL,a1*COLPCTN / MISSTEXT='0' PRINTMISS; ; RUN;SAS8では、度数や合計に関して、下記の統計量キーワードが追加されています。
なお、SAS6で列を100%とした表を出力するには、次のようなTABLESステートメントを記述します。 TABLES (group*(gender ALL)) ALL,a1*PCTN<group*gender group*ALL ALL> 列を100%とした表の出力 ------------------------------------------------------------ | | a1 | | |-------------------------| | | はい | いいえ | | |------------+------------| | | ColPctN | ColPctN | |--------------------------------+------------+------------| |group |gender | | | |---------------+----------------| | | |A |男 | 50.00| 25.00| | |----------------+------------+------------| | |女 | 16.67| 25.00| | |----------------+------------+------------| | |All | 66.67| 50.00| |---------------+----------------+------------+------------| |B |gender | | | | |----------------| | | | |男 | 16.67| 25.00| | |----------------+------------+------------| | |女 | 16.67| 25.00| | |----------------+------------+------------| | |All | 33.33| 50.00| |--------------------------------+------------+------------| |All | 100.00| 100.00| ------------------------------------------------------------ |