在命令行上使用参数运行RMarkdown

时间:2018-04-18 16:43:54

标签: r bash r-markdown

我正在尝试从命令行终端运行Rmarkdown文件(myfile.Rmd)。这个文件需要一个参数来工作。我们可以使用这个简单的文件作为例子:

---
title: "Simple example"
output:
  pdf_document: default
---

```{r read_arg, include=FALSE}
args = commandArgs(TRUE)
VAR = args[1]
```

```{r show_var}
VAR
```

首先,是否可以通过读取Rscripts的参数来运行Rmarkdown文件?我的意思是,不是通过阅读this问题中描述的输入文件。

如果是这样,怎么办呢?我希望用于运行Rmarkdown文件的here工作对我有用,但它并不是因为这个论点。我正试图运行类似的东西:

Rscript -e "rmarkdown::render('myfile.Rmd myarg')"

编辑:但它会出现以下错误:

  

工具中出错:: file_path_as_absolute(输入):         文件'myfile.Rmd_myarg'不存在       电话: - > setwd - > dirname - >       Además:警告信息:       1:在normalizePath(path,winslash = winslash,mustWork = mustWork)中:         path [1] =“myfile.Rmd myarg”:没有existe el fichero o el directorio       2:在normalizePath(path,winslash = winslash,mustWork = mustWork)中:         path [1] =“myfile.Rmd_myarg”:没有exic el fichero o el directorio       Ejecucióninterrumpida

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:3)

添加myarg对象作为参数是可行的方法:

Rscript -e "rmarkdown::render('example.Rmd',params=list(args = myarg))

然后将参数添加到Rmd文件中:

---
title: "Simple example"
output:
  pdf_document: default
params:
  arg: myarg
---

有关参数化报告的文档:https://rmarkdown.rstudio.com/developer_parameterized_reports.html