在 rmarkdown::render() 上循环不打印 Word 文档中的表格

问题描述

我试图在 Word 文档中包含一个表格,但没有结果。我在结果文档中得到的只是表格元素的文本列表,包括列名。

我的代码被组织成两个脚本:

脚本调用 Markdown 文件 KG-report.Rmd

rmarkdown::render("KG-report.Rmd",params = list(
    pest.name = pest.name),output_file = paste0("Report-",pest.name,".docx")

Markdown 脚本 KG-report.Rmd

---
title: "Some title"
author: "me"
date: "`r Sys.Date()`"
output:
  officedown::rdocx_document:
    reference_docx: Simple_master_template_opinions.docx
    tables:
      style: Table
params: 
  pest.name: "Default pest"
---

```{r process-map,echo=FALSE,warning=FALSE,message=FALSE,fig.keep='all'}
# create and check directories
  source("R_scripts\\pest.PROFILE.check.pest.directories.r",local = knitr::knit_global())
  
  # download distribution tables or load reviewed distribution table
  source("R_scripts\\pest.PROFILE.web.EPPO.distribution.table.r",local = knitr::knit_global())

  knitr::kable(pest.kg.table)

etc...

经过多次测试并遵循未能解决问题的文字格式建议(例如here)后,问题似乎与循环有关

rmarkdown::render()

如果我不使用它,表格就会被打印出来...... 是否有任何已知问题或我只是以错误的方式使用它? 谢谢

更新 - 找到解决方

最后我找到了解决方案。看起来 kable 函数在 word 文件中打印了一个 html 表格,导致文本没有表格格式。添加参数 format = "pipe" 解决了问题。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)