2017-09-04 24 views
0

我想通过闪亮的应用程序降价来创建参数化报告。该报告应该是一个包含文本,图像和表格的文件。但是我不知道如何通过命令行模仿编织按钮的行为。这是降价文件的一个例子。带表格的参数化字汇报告

--- 
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中使用针织按钮,我会得到一个“很好”的格式化表格。我一直在研究参数化报告的tutorial建议使用rmarkdown :: render例如

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

但是,当这样做时表格不显示为格式化表格。 rmarkdown :: render的帮助表明,如果需要,编织完成。任何想法我做错了什么?

+0

删除'results ='asis''并只写'kable(df)'(不打印)。这应该导致相同的表格。 –

+0

感谢您的回答。这对我提供的(希望)最小的例子有帮助。不过,我想将标识符列表传递给markdown文件,并为每个标识符生成一个表。因此,据我所知,使用for循环,我确实需要打印电话。 – Isolde

回答

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))

这是否对你的工作?

+0

嗨,再次感谢。这确实有效,虽然我不明白为什么我不能让它在之前工作。我做了一些细微的修改,以便能够用不定数量的“数字”来调用报告,例如'rmarkdown :: render(“〜R/report.Rmd”,params = list(n = c(18,11,14,13)))'' – Isolde