【发布时间】:2015-07-18 13:01:05
【问题描述】:
我使用类似于下面的 sn-p 的代码生成了一组表:
```{r tables, echo=TRUE, eval=TRUE}
require(reshape2); require(pander)
data("mtcars")
data("AirPassengers")
dta_lst <- list(mtcars, AirPassengers)
for (i in 1:length(dta_lst)) {
pander(melt(head(dta_lst[[i]], n = 2), varnames = c("Something"),
value.name = "Something else"),
caption = paste("Some table for: ", class(dta_lst[[i]])))
}
```
当我运行代码时,它会产生所需的输出(当然,提供的示例没有什么意义,在我的正确数据中,我以合理的方式融化数据):
---------------------------
variable Something else
---------- ----------------
mpg 21
mpg 21
cyl 6
cyl 6
disp 160
disp 160
hp 110
hp 110
drat 3.9
drat 3.9
wt 2.62
wt 2.875
qsec 16.46
qsec 17.02
vs 0
vs 0
am 1
am 1
gear 4
gear 4
carb 4
carb 4
---------------------------
Table: Some table for: data.frame
----------------
Something else
----------------
112
118
----------------
Table: Some table for: ts
当我尝试在 Rstudio 中编写代码时,pander 表不会出现:
当然,没有循环,pander 命令可以正常工作,并生成整齐地编入 HTML 文档的表格。
【问题讨论】:
-
简而言之,禁用
panderOptions中的knitr.auto.asis设置并使用knitr中的results='asis'块选项。我也会很快提供更详细的答案,在那之前,请参阅此相关主题:github.com/Rapporter/pander/issues/142#issuecomment-66619769 -
@daroczig,非常感谢您的关注。我曾经建议组合,它像宣传的那样工作。在更一般的问题上,
panderOptions('knitr.auto.asis', FALSE)是否会影响 Rmd 文件中其他pander表区域的处理方式?除了上面描述的循环之外,我在这里和那里使用 pander 来派生一些更标准的表。
标签: r for-loop rstudio knitr pander