render()与word_document

时间:2019-04-25 21:05:58

标签: r-markdown

我正在尝试编织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)

“编织”按钮(RStudio)和pandoc命令同时运行的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 :(得分:0)

当输出为kable()时,RStudio编织按钮必须更改word_document格式。如果我将kable()呼叫更改为

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

有效。以下设置kable()格式。我不知道用户将选择哪种输出格式,所以不想在函数调用中设置格式。将其与if语句一起使用以检测输出类型是否为Word,即可解决此问题。

options(knitr.table.format = 'markdown')