在 Rstudio 的 RMarkdown 中循环生成 pander 表
Generating pander tables in a loop in RMarkdown in Rstudio
我使用类似于以下代码段的代码生成了一组表格:
```{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 文档的表格。
在for循环中没有'output screen'除非你使用print(x)
函数。
for (i in 1:4) { i }
不显示任何内容
for (i in 1:4) {print(i)}
显示数字 1 2 3 和 4
解决方案:在 FOR 循环中构造 table(使用 knitt)并将其分配给一个变量。然后使用 print()
函数打印出这个变量。记住。您必须在 var table 前后添加空行:在 print()
中使用粘贴功能
我使用类似于以下代码段的代码生成了一组表格:
```{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 文档的表格。
在for循环中没有'output screen'除非你使用print(x)
函数。
for (i in 1:4) { i }
不显示任何内容
for (i in 1:4) {print(i)}
显示数字 1 2 3 和 4
解决方案:在 FOR 循环中构造 table(使用 knitt)并将其分配给一个变量。然后使用 print()
函数打印出这个变量。记住。您必须在 var table 前后添加空行:在 print()