使用传递文件的a.R在命令行上调用RMarkdown

时间:2015-02-13 19:54:14

标签: r command-line automation argument-passing r-markdown

总之,我在RStudio中的'input_file1.txt'上使用我的脚本'Graphs.R'来创建一个Rmd然后我编织成html。我想自动执行此过程以在命令行上运行更多文件。

到目前为止,我可以使用以下命令在命令行上运行Rscript:

  

Rscript Graphs.R input_file1.txt

我也知道我可以使用以下方法创建.RMD文件:

  

Rscript -e rmarkdown :: render(Graphs.R)

但是,我想做以下事情:

  

Rscript -e rmarkdown :: render('Graphs.R input_file1.txt','output_file.Rmd')

有任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:18)

目前还不完全清楚你要做什么。看起来你有一个文本文件必须通过R脚本转换为Rmd(为什么它不只是一个Rmd开头?)然后你想渲染Rmd。您可以通过在终端中运行以下命令来执行此操作:

Rscript Graphs.R
Rscript -e "rmarkdown::render('output_file.Rmd')"

第一个命令运行Graphs.R文件,该文件可能会生成output_file.Rmd。第二个命令运行一个单行程序,将output_file.Rmd编织成output_file.html

如果要读取R文件中的命令行参数,请尝试?commandArgs

args <- commandArgs(trailingOnly = TRUE)

另见Stack Overflow question