I'm working a report with rmarkdown and latex. I need to print a group of tables using knitr::kable
, but the don't print when inside a for loop.
This is my code:
---
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"))
}
```
It doesn't matter if I use results = "asis"
or if I omit it altogether, nothing prints to the document.
I've tried enclosing the kable
call within a print
call (print(kable(t2[[i]]...
), and it successfully prints the output to the document, but the format is the same format as a standard R prompt (preceded by ##
, for example), which is rather ugly.
How can I display the tables, other than manually?
### EDIT ###
Some answerers have redirected me to R knitr print in a loop as a duplicate answer. It's not, because as I stated in the previous paragraph, this effectively prints the table, but the format is not the expected one. The accepted answer (and related github thread) really solved the problem.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…