Kon*_*rad 5 for-loop r rstudio knitr pander
我使用类似下面代码段的代码创建了一组表格:
```{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]])))
}
```
Run Code Online (Sandbox Code Playgroud)
当我运行代码时,它会产生所需的输出(当然,提供的示例没有多大意义,在我的正确数据中,我以合理的方式融合数据):
---------------------------
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
Run Code Online (Sandbox Code Playgroud)
当我尝试在Rstudio中编写代码时,不会出现平移表:

当然,没有循环,pander命令就可以正常工作,并生成整齐地编织成HTML文档的表格.
小智 3
在 for 循环中,除非使用该函数,否则没有“输出屏幕” print(x)。
for (i in 1:4) { i } 不显示任何内容
for (i in 1:4) {print(i)}显示数字 1 2 3 和 4
解决方案:在FOR循环中构造表(使用knitt)并将其分配给变量。然后使用函数打印出这个变量print()。记住。您必须在 var 表前后添加空行:在内部使用粘贴功能print()