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| ------------------------------------------------------------ |
|||||||||||||||||||