9

複数の列がある場合に Sweave で xtable を使用することについて質問があります。私が取り組んでいるテーブルには、約 25 列と 5 行があります。動的であるため、列の正確な数は不明です。

私が言うとき、

table1 <- テーブル (df$someField)

基本的にページの長さを超えるテーブルを取得します。

       ColA    ColB    ColC
---------------------------
RowA   1       2       3   ......
RowB   3       4       6   ......

これで xtable を実行し、Sweave で実行すると、

xtable(table1, caption="some table")

あふれます。

私が探しているのは、

       ColA    ColB    ColC
---------------------------
RowA   1       2       3 
RowB   3       4       6 

       ColD    ColE    ColF 
---------------------------
RowA   11       9       34 
RowB   36       8       65  

\hline などのマークアップを使用します。基本的に、「サブテーブル」ごとに5列など、xtableを部分に分割します。

これもバッチ ジョブで実行しているため、Rnw ファイルで Sweave を実行することによって生成できる必要があるソリューションが何であれ、個々のファイルを変更することはできません。

前もって感謝します、

よろしく、

  • ラージ。
4

1 に答える 1

3

?latex.table.byこれはtaRifxパッケージの例です。longtableLaTeX を使用して似たようなものを作成し、latex.table.byコードをプロトタイプとして使用できます。

my.test.df <- data.frame(grp=rep(c("A","B"),10),data=runif(20))
library(xtable)
latex.table.by(my.test.df)
#   print(latex.table.by(test.df), include.rownames = FALSE, include.colnames = TRUE, sanitize.text.function = force)
#   then add \usepackage{multirow} to the preamble of your LaTeX document
#   for longtable support, add ,tabular.environment='longtable' to the print command (plus add in ,floating=FALSE), then \usepackage{longtable} to the LaTeX preamble

とにかく、longtableLaTeX のパッケージが鍵です。

編集:行が多すぎず、列が多すぎるようです。その場合は、まずそのページだけをランドスケープしてみてください。

ヘッダー内:

\usepackage{lscape}

あなたのテーブルの周り:

\begin{landscape}
...
\end{landscape}

または単に使用しますsidewaystable

表の幅が広すぎて 1 ページに収まらない場合は、supertabularパッケージを試してみてください。説明によると、幅に基づいて複数のページにまたがって処理できるように思えます (ただし、使用したことがないため、確信が持てません)。

于 2011-09-14T22:53:46.267 に答える