4

Hmiscを使用して次のlatexようなテーブルを取得するにはどうすればよいですか ...

                        Group 1                     Group 2
d   n   beta   Sub-group 1   Sub-group 2   Sub-group 1   Sub-group 2
10  100 0.25       1             9
        0.75       2
    500 0.25       3            10
        0.75       4            11             ...           ...
100 100 0.25       5            12
        0.75       6            13
    500 0.25       7            ...
        0.75       8

...?以下は私がこれまでに持っているものです。latexどういうわけか、最初の 3 つの列を使用して行ラベルを表示するように伝えたいと思います。また、NA は削除されません。

x <- matrix(1:72, ncol=4, nrow=8) # data part
colnames(x) <- c("gr1.sgr1", "gr1.sgr2", "gr2.sgr1", "gr2.sgr2")
rmNames <- function(x) {x[c(FALSE, x[-1]==x[-length(x)])] <- ""; x} 
rn <- apply(expand.grid(beta=c(0.25, 0.75), n=c(100, 500), d=c(10, 100))[, 3:1], 2, rmNames)
x <- cbind(rn, x) 
x[2,5] <- NA

require(Hmisc)
latex(x,
      file="",
      cgroup=c("", "Group 1", "Group 2"),
      n.cgroup=c(3, 2, 2),
      na.blank=TRUE,
      rowlabel=c("d", "n", "beta"),
      booktabs=TRUE,
      collabel.just=rep("c", 2))

アップデート

ジョランのアプローチで、私は得ます(したがって、 と を追加rownames=NULLrep("c",7)ます):

\begin{table}[!tbp]
\begin{center}
\begin{tabular}{lllcllcll}
\toprule
\multicolumn{3}{c}{\bfseries }&
\multicolumn{1}{c}{\bfseries }&
\multicolumn{2}{c}{\bfseries Group 1}&
\multicolumn{1}{c}{\bfseries }&
\multicolumn{2}{c}{\bfseries Group 2}
\tabularnewline
\cline{1-9}
\multicolumn{1}{c}{d}&\multicolumn{1}{c}{n}&\multicolumn{1}{c}{beta}&\multicolumn{1}{c}{}&\multicolumn{1}{c}{gr1.sgr1}&\multicolumn{1}{c}{gr1.sgr2}&\multicolumn{1}{c}{}&\multicolumn{1}{c}{gr2.sgr1}&\multicolumn{1}{c}{gr2.sgr2}\tabularnewline
\midrule
10&100&0.25&&1&9&&17&25\tabularnewline
&&0.75&&2&NA&&18&26\tabularnewline
&500&0.25&&3&11&&19&27\tabularnewline
&&0.75&&4&12&&20&28\tabularnewline
100&100&0.25&&5&13&&21&29\tabularnewline
&&0.75&&6&14&&22&30\tabularnewline
&500&0.25&&7&15&&23&31\tabularnewline
&&0.75&&8&16&&24&32\tabularnewline
\bottomrule
\end{tabular}
\end{center}
\end{table}

1) 空の列が挿入されるのはなぜですか ( \multicolumn{1}{c}{})?

2) がNA置き換えられないのはなぜですか?

4

1 に答える 1

1

そのため、 には強制の問題がありrmNamesます。あなたはおそらくそれが次のようになることを意図していました:

rmNames <- function(x) {x[c(FALSE, x[-1]==x[-length(x)])] <- NA; x}

空の文字を割り当てると、すべてが文字に強制されます。latex問題の値はまだNAであるため、それがどのようにトリップするかは正直よくわかりませんが、その変更を行うと問題が解決するようです.

余分な列については、わかりません。結果の PDF を見ると、作成者は、列をグループ化するときに空の列を埋め込む方が見栄えが良いと信じているという仮説しか立てられません。

于 2012-05-02T23:24:39.923 に答える