我正在用rmarkdown和latex工作.我需要使用打印一组表knitr::kable,但是在for循环中不打印.
这是我的代码:
---
title: "project title"
author: "Mr. Author"
date: "2016-08-30"
output:
pdf_document:
latex_engine: xelatex
bibliography: biblio.bib
header-includes:
- \usepackage{tcolorbox}
---
Text and chunks that run ok.
```{r loadLibraries}
require(data.table)
require(knitr)
```
## Try to print a group of tables from split
```{r results = "asis"}
t1 <- data.table(a = sample(letters, 10, T), b = sample(LETTERS[1:3], 10, T))
t2 <- split(t1, t1$b)
for (i in 1:length(t2)){
kable(t2[[i]], col.names = c("A", "B"))
}
```
Run Code Online (Sandbox Code Playgroud)
如果我使用results = "asis"或者如果我完全省略它没关系,则没有任何内容打印到文档.
我已经尝试kable在printcall(print(kable(t2[[i]]...)中包含调用,并且它成功地将输出打印到文档,但格式与标准R提示符(##例如前面的格式)相同,这相当丑陋.
除手动外,如何显示表格?
### EDIT ###
一些回答者将我重新定向到循环中的R knitr打印作为重复答案.它不是,因为正如我在前一段中所述,这有效地打印了表格,但格式不是预期的格式.接受的答案(和相关的github线程)真正解决了这个问题.
Chr*_*sss 12
这个问题在这里解决:https://github.com/yihui/knitr/issues/886
您需要的只是每次打印电话后的换行符
---
title: "project title"
author: "Mr. Author"
date: "2016-08-30"
output:
pdf_document:
latex_engine: xelatex
bibliography: biblio.bib
header-includes:
- \usepackage{tcolorbox}
---
Text and chunks that run ok.
```{r loadLibraries}
require(data.table)
require(knitr)
```
```{r results = "asis"}
t1 <- data.table(a = sample(letters, 10, T), b = sample(LETTERS[1:3], 10, T))
t2 <- split(t1, t1$b)
for (i in 1:length(t2)){
print(kable(t2[[i]], col.names = c("A", "B")))
cat("\n")
}
```
Run Code Online (Sandbox Code Playgroud)