R Sweave:在浮动环境中打印跨越多页的非常大的数据框样本

R Sweave:在浮动环境中打印跨越多页的非常大的数据框样本

我正在使用 R Sweave 通过 Windows 7 上的 R Studio 将 R 文档输出到 LaTeX 文件中。我有一个非常大的数据框,我必须从中抽取一个样本放在文档的开头。我对这个表之后的所有其他表都使用了 xtable,但对于这个表,我遇到了一个问题,即有超过 30 个变量(列),我没有地方将它放在整个页面上,即使在横向页面上,也不必打破它。因为我认为不可能使用 xtable(或类似的方式,据我所知,longtable 仅适用于长度,而不是宽度),所以我使用 pander 代码生成 R 输出,效果很好,只是它不是我想要的完美表格布局(但这并不那么夸张)。问题是这个输出跨越多个页面,我必须将它放在浮动环境中,使它像我工作中的所有其他表格一样运行(主要是将它发送到其部分的末尾)。目标实际上是让他表现得像一个浮点数,因为我可能需要稍后对所有浮点数进行一些更改(例如更改它们的位置),而且我不必每次都询问如何找到解决方案来复制我对所有其他浮点数所做的小调整。

对于我来说,能够使用一些接近 xtable 的解决方案会很棒,但只需将我的表格输出插入到类似浮点的环境中也是完美的。

我加入了一个可重现的小例子:

\documentclass{book}

\usepackage{caption}
\usepackage{float}
\usepackage[english]{babel}
\usepackage{lipsum}

\begin{document}

<<packages, results=hide, echo=FALSE>>=
library(dplyr)
library(xtable)
library(knitr)
library(pander)
@

Some text before... \lipsum

<<sample_table, echo=FALSE, results=verbatim>>=
iris2 <- sample_n(iris, 32)
orange2 <- sample_n(Orange, 32)
airquality2 <- sample_n(airquality, 32)
dat <- bind_cols(mtcars, iris2, orange2, airquality2, mtcars, iris2)

a <- as.data.frame(dat) %>%
  sample_n(6)

row.names(a) <- NULL
pandoc.table(a, justify="left", missing="-")
@

Some text after... \lipsum

\end{document}

如您所见,生成的表格只是停留在她出现的位置,没有浮动特性。这就是我想要改变的,要么通过改变我的输出方法(pander),要么通过将块插入某个浮动环境,而不这样做它会切掉一些部分,因为它需要打印多页。

我希望我的英语不是太差,并且我的可重现例子也是如此,如果您希望我编辑问题,请在评论中告诉我,我会尽力。

谢谢你的帮助!

相关内容