【问题标题】:Parameterized word report with tables带表格的参数化文字报告
【发布时间】:2017-09-04 20:14:50
【问题描述】:

我正在尝试通过闪亮应用程序的降价创建参数化报告。该报告应该是一个包含文本、图像和表格的 word 文件。但是我不知道如何通过命令行模仿 knit 按钮的行为。以下是降价文件的示例。

---
title: "Dynamic report"
output: word_document
params:
  n: 10
---

```{r echo = FALSE, results='asis'}
library(knitr)
params$n
df <- data.frame(x = 1:params$n, y = rnorm(params$n))
print(kable(df))
```

如果我在 rstudio 中使用 knit 按钮,我会得到一个“漂亮”格式的表格。 tutorial 用于我一直在查看的参数化报告建议使用 rmarkdown::render 执行报告,例如

rmarkdown::render("report.Rmd", params = list(n = 20)) 

但是,这样做时,表格不会显示为格式化表格。 rmarkdown::render 的帮助说明如果需要编织已完成。知道我做错了什么吗?

【问题讨论】:

  • 删除results = 'asis',只写kable(df)(不打印)。这应该会产生同一张表。
  • 感谢您的回答。这确实有助于我提供的(希望是)最小的示例。但是,我想将标识符列表传递给降价文件并为每个标识符生成一个表。因此,据我所知,使用我确实需要 print 调用的 for 循环。

标签: r r-markdown


【解决方案1】:

在您发表评论后,这应该可以:

---
title: "Dynamic report"
output: word_document
params:
  n: 10
  m: 20
---

```{r, echo = FALSE, results='asis'}
library(knitr)
for(i in 1:length(params)){
  df <- data.frame(x = 1:params[[i]], y = rnorm(params[[i]]))
  print(kable(df))
}
```

然后你可以使用rmarkdown::render("~/Schreibtisch/temp/RMD.Rmd", params = list(n = 10, m = 20))

这对你有用吗?

【讨论】:

  • 您好,再次感谢。这确实有效,虽然我不明白为什么我以前不能让它工作。我做了一些细微的修改,以便能够使用可变数量的“数字”来调用报告,例如rmarkdown::render("~R/report.Rmd", params = list(n = c(18,11,14,13)))
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-03
  • 2013-02-02
  • 1970-01-01
相关资源
最近更新 更多