Я пытаюсь использовать пакет flextable
, чтобы получить несколько хорошо отформатированных таблиц в моем Rmarkdown (переход к файлу word).Таблицы в целом работают нормально, но если я помещу это в оператор if, если из оператора if будет напечатано что-то еще, я не вижу таблицу.Любые идеи, что происходит?
Мой пример (запустить все вместе):
---
title: "Testing"
output:
word_document:
reference_docx: styles.docx
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## R Markdown
```{r defaults}
library(pander)
library(knitr)
library(flextable)
```
1-й тест работает нормально - нет, если оператор и новые строки по обе стороны таблицы
## test 1 table no if statemnets
```{r test1, echo = FALSE, results = 'asis'}
test <- data.frame (c = 1:5, x = 6:10)
testft <- flextable(test)
testft
```
2-й тест имеет оператор if без другого текста и отлично работает
## test 2 if statement no other text
```{r test2, echo = FALSE, results = 'asis'}
RunTable <- TRUE
if(RunTable){
testft
}
```
Но если я попытаюсь добавить другие выходные данные в свой оператор if, с или без новых разрывов строк, я не получулюбая таблица в моем выводе
## test 3 if statement with other text
```{r test3, echo = FALSE, results = 'asis'}
#Hack so dat works up to year 2047 as cpp functions in padr can't handle data beyond 2038
#Get Daily Values
RunTable <- TRUE
if(RunTable){
print("before ")
testft
print("after ")
}
```
## test 4 if statement with other text and newlines
```{r test4, echo = FALSE, results = 'asis'}
RunTable <- TRUE
if(RunTable){
print("if with linebreak before ")
cat(" \n")
knit_print(testft)
cat(" \n")
print("if with linebreak after ")
}
```
Вывод: