当有多列时,有一个关于将xtable与Sweave结合使用的问题。我正在处理的表大约有25列和5行。确切的列数是未知的,因为它是动态的。

我跑的时候说



我得到一个实质上超出页面长度的表。

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

如果a在此上执行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等标记。基本上,将xtable分成多个部分,每个“子表”分成5列。

我也在批处理作业中运行此程序,因此无论必须通过在Rnw文件上运行Sweave生成何种解决方案,我都无法对其进行更改。

提前致谢,

问候,
  • Raj。
  • 最佳答案

    这是?latex.table.by包中taRifx的示例。您可以在LaTeX中使用longtable酿造类似的东西,并将latex.table.by代码用作原型(prototype)。

    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
    

    无论如何,LaTeX中的longtable包是关键。

    编辑:看来您有太多列而不是太多行。在这种情况下,请先尝试对该页面进行美化。

    在标题中:
    \usepackage{lscape}
    

    table 周围:
    \begin{landscape}
    ...
    \end{landscape}
    

    或者只是使用sidewaystable

    如果您的表格太大而不能容纳一页,请尝试使用supertabular包,从说明中听起来像它可以根据宽度处理多个页面(但我从未使用过,所以不能确定)。

    关于r - 将xtable输出拆分为子表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7423423/

    10-12 20:00