Мне нужно создать много таблиц, и я пытаюсь создавать их в цикле. Я использую flextable с rmarkdown внутри rstudio. Использование команды print(theFlextable)
в цикле создает список текста, а не таблицу. Это происходит с типами вывода docx и html. Если я не использую циклический рендеринг правильно. Вот демонстрация:
---
title: "Demo"
output: word_document
---
```{r setup, include=FALSE}
library(flextable)
```
## This Works
```{r iris, echo=F, message=F, error=F, results='asis'}
ft<-flextable(iris[1:10,])
ft
```
## This produces no output
```{r echo=F, message=F, error=F, results='asis'}
doThese<-c("setosa","virginica")
for (i in doThese){
tbl<-subset(iris, Species==i)
ft<-flextable(tbl[1:10,])
ft
}
```
## This produces incorrect output
```{r echo=F, message=F, error=F, results='asis'}
doThese<-c("setosa","virginica")
for (i in doThese){
tbl<-subset(iris, Species==i)
ft<-flextable(tbl[1:10,])
print(ft)
cat("\n\n")
}
```
Это результат в слове последнего блока выше:
тип: флештабируемый объект. col_keys: Sepal.Length, Sepal.Width, Petal.Length, Petal.Width, Заголовок Species содержит 1 строку, тело содержит 10 строк, образец исходного набора данных: Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5,1 3,5 1,4 0,2 сетоса 2 4,9 3,0 1,4 0,2 сетоса 3 4,7 3,2 1,3 0,2 сетоса 4 4,6 3,1 1,5 0,2 сетоса 5 5,0 3,6 1,4 0,2 сетоса
тип: флештабируемый объект. col_keys: Sepal.Length, Sepal.Width, Petal.Length, Petal.Width, Заголовок Species содержит 1 строку, тело содержит 10 строк, образец исходного набора данных: Sepal.Length Sepal.Width Petal.Length Petal.Width Species 101 6,3 3,3 6,0 2,5 Вирджиника 102 5,8 2,7 5,1 1,9 Вирджиника 103 7,1 3,0 5,9 2,1 Вирджиника 104 6,3 2,9 5,6 1,8 Вирджиника 105 6,5 3,0 5,8 2,2 Вирджиника