Использование flextable в цикле уценки r без создания таблиц - PullRequest
0 голосов
/ 05 октября 2018

У меня много таблиц для создания, и я пытаюсь создать их в цикле.Я использую flextable с rmarkdown внутри rstudio.Использование команды print(theFlextable) в цикле дает список текста, а не таблицы.Это происходит для типов вывода docx и html.Если я не использую цикл, flextable отрисовывает правильно.Вот демо:

---
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")
}
``` 

Это вывод в слове последнего блока выше:

type: flextable object.col_keys: Sepal.Length, Sepal.Width, Petal.Length, Petal.Width, заголовок вида имеет 1 ряд (ы), тело имеет 10 строк исходного набора данных: Sepal.Length Sepal.Width Petal.Length Petal.Width Species1 5,1 3,5 1,4 0,2 сетоса 2 4,9 3,0 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, заголовок вида имеет 1 ряд (ы), тело имеет 10 строк исходного набора данных: Sepal.Length Sepal.Width Petal.Length Petal.Width Species101 6,3 3,3 6,0 2,5 virginica 102 5,8 2,7 5,1 1,9 virginica 103 7,1 3,0 5,9 2,1 virginica 104 6,3 2,9 5,6 1,8 virginica 105 6,5 3,0 5,8 2,2 virginica

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Если у вас версия Pandoc> = 2 (в комплекте с RStudio 1.2), вы можете использовать knit_print.Я обнаружил,

cat(knit_print(ft))

успешно напечатал таблицы в цикле.

0 голосов
/ 06 октября 2018

Я не уверен, что это правильный ответ, но я использовал это, чтобы решить мою проблему:

Циклический просмотр кода в knitr и rmarkdown

...