我正在使用 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"))
}
```
如果我使用也没关系results = "asis"
或者如果我完全省略它,文档中不打印任何内容.
我试过附上kable
内调用print
call (print(kable(t2[[i]]...
),并且它成功地将输出打印到文档中,但格式与标准 R 提示符的格式相同(前面是##
,例如),这是相当难看的。
除了手动之外,如何显示表格?
### 编辑 ###
一些回答者已将我重定向到R knitr 循环打印 https://stackoverflow.com/questions/28313600/r-knitr-print-in-a-loop作为重复的答案。It's not,因为正如我在上一段中所述,这有效地打印了表格,但格式不是预期的格式。接受的答案(以及相关的 github 线程)确实解决了问题。
这个问题在这里解决:https://github.com/yihui/knitr/issues/886 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")
}
```
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)