統計ソフトRでは、集計はtable()関数、その比率はprop.table()関数で簡単に作成できるが、SASのような両方合わせた表は簡単にできない。得に今、集計の結果をLaTeXで記載しているが、表組みを最初からするのが面倒である。
そこで、簡単なプログラムを作成してみた。
まず、元のtableは以下のようなものである。
x<-table(Diagnosis,EndPoint)
> x
EndPoint
Diagnosis Alive Death
A 2 0
B 15 0
C 13 0
D 36 5
> prop.table(x)
EndPoint
Diagnosis Alive Death
A 0.02816901 0.00000000
B 0.21126761 0.00000000
C 0.18309859 0.00000000
D 0.50704225 0.07042254
>
これを作成したtab.propで処理すると、以下のようになる。
> tab.prop(x,margins=3)
Alive % Death % Total %
A 2 2.82 0 0.00 2 2.82
B 15 21.13 0 0.00 15 21.13
C 13 18.31 0 0.00 13 18.31
D 36 50.70 5 7.04 41 57.74
Total 66 92.96 5 7.04 71 100.00
>
marginsは1:縦、2:横、3:全体の比率に対応している。
小数点の桁数はdigits=で指定できる。
> tab.prop(x,margins=2, digits=3)
Alive % Death % Total %
A 2 3.030 0 0 2 1.515
B 15 22.727 0 0 15 11.364
C 13 19.697 0 0 13 9.849
D 36 54.545 5 100 41 77.273
Total 66 99.999 5 100 71 100.000
>
xtableを利用してLaTexにする。
> library(xtable)
> xtable(tab.prop(x,margins=2,digits=2))
% latex table generated in R 2.15.0 by xtable 1.7-0 package
% Wed May 2 21:13:32 2012
\begin{table}[ht]
\begin{center}
\begin{tabular}{rrrrrrr}
\hline
& Alive & \% & Death & \% & Total & \% \\
\hline
A & 2.00 & 3.03 & 0.00 & 0.00 & 2.00 & 1.51 \\
B & 15.00 & 22.73 & 0.00 & 0.00 & 15.00 & 11.36 \\
C & 13.00 & 19.70 & 0.00 & 0.00 & 13.00 & 9.85 \\
D & 36.00 & 54.55 & 5.00 & 100.00 & 41.00 & 77.27 \\
Total & 66.00 & 100.01 & 5.00 & 100.00 & 71.00 & 100.00 \\
\hline
\end{tabular}
\end{center}
\end{table}
>
これをTeXの文章に張り付ければ、おしまい。
プログラムは次にあります。