render () и графический интерфейс Knit для word_document - PullRequest
0 голосов
/ 26 апреля 2019

Я пытаюсь связать таблицу, созданную kable(), и создать документ Word. Когда я вяжу с помощью кнопки вязания RStudio, она работает нормально и производит отформатированную таблицу. Когда я использую render(), это не так. Он создает просто неформатированную строку текста. Вот минимальный пример:

test.Rmd

---
title: "Test"
output: 
  word_document:
    keep_md: true
---

```{r pressure2, echo=FALSE}
knitr::kable(mtcars)
```

Команда render() -

rmarkdown::render("test.Rmd", clean=FALSE)

Команда pandoc, запускаемая как кнопкой Knit (RStudio), так и командой render(), является

"C:/Program Files/RStudio/bin/pandoc/pandoc" +RTS -K512m -RTS test.utf8.md --to docx --from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash --output test.docx --smart --highlight-style tango

Я вижу проблему в файле test.utf8.md, создаваемом pandoc() при запуске render(). Файл test.utf8.md представляет собой HTML-таблицу. Я не вижу файл test.utf8.md, созданный нажатием кнопки Вязание, поскольку он не сохраняется с keep_md=true. Сохраняется только файл test.md.

1 Ответ

0 голосов
/ 26 апреля 2019

Кнопка RStudio Knit должна изменять формат kable(), когда вывод word_document.Если я изменю kable() вызов на

knitr::kable(mtcars, format="markdown")

Это работает.Следующее устанавливает формат kable().Я не знаю, какой выходной формат выберет пользователь, поэтому не хочу устанавливать формат при вызове функции.Помещение этого в оператор if для определения, является ли тип вывода Word, устраняет проблему.

options(knitr.table.format = 'markdown')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...