Циклы Flextables в документах R Markdown с выводом Word - PullRequest
3 голосов
/ 30 сентября 2019

Я хочу напечатать несколько гибких таблиц в одном документе R Markdown. Это не сложно при использовании вывода html, но мне нужен вывод Word.

При выводе html следующий код R Markdown (пример взят из https://davidgohel.github.io/flextable/articles/offcran/examples.html#looping-in-r-mardown-documents) создает документ с несколькими таблицами Flextable:

---
output:
  html_document: default

---

```{r}
library(htmltools)
library(flextable)

ft <- flextable(head(iris))
tab_list <- list()
for(i in 1:3){
  tab_list[[i]] <- tagList(
    tags$h6(paste0("iteration ", i)),
    htmltools_value(ft)
  )
}
tagList(tab_list)
```

Мне не удалось получить эквивалентный вывод, используя вывод документа Word.Решение, предложенное в Как knit_print flextable с циклом в файле rmd аналогично работает с выводом html, но у меня естьне удалось получить правильную визуализацию при выводе Word.

Любой совет по выводу документа R Markdown Word, эквивалентный приведенному выше примеру, был бы очень полезен!

1 Ответ

3 голосов
/ 30 сентября 2019

Вам необходимо использовать flextable::docx_value и параметр чанка results='asis'

---
title: "Untitled"
output: word_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(flextable)
```

```{r results='asis'}
ft <- flextable(head(iris))
for(i in 1:3){
  cat("<w:p/>")## add this to add an empty  new paragraph between tables
  flextable::docx_value(ft)
}
```
...