在Windows上从批处理文件运行knitr

4

我每天都会在我的Windows电脑上使用批处理文件运行一些自动报告。但是,如果我想使用.rmd文件并生成HTML输出,该怎么做呢?

因此,如果我使用普通的.R文件和批处理文件,这个方法对我有效:

"C:\R\R-3.0.1\bin\x64\Rscript.exe" --default-packages=methods 
"C:\R\R-3.0.1\bin\x64\Scripts\models.R"

但是,这不会:
"C:\R\R-3.0.1\bin\x64\Rscript.exe" --default-packages=methods,knitr 
"C:\R\R-3.0.1\bin\x64\Scripts\test_knitr.Rmd"

我尝试了一些受命令行启发的变体,例如:
"C:\R\R-3.0.1\bin\x64\Rscript.exe" --default-packages=methods,knitr 
knit("C:\R\R-3.0.1\bin\x64\Scripts\test_knitr.Rmd")

但迄今为止没有成功!我是一个完全不懂knitr/.rmd的新手,所以我甚至不确定是否能做到。

2个回答

9
我使用类似的东西。
Rscript -e "require ('knitr'); knit ('test.Rmd')"

但这是用于命令行的,对吧?批处理文件的语法不同吗?至少我已经尝试了很多你所写的变化,但无法使其工作。 - Thorst
2
如果您在批处理和命令行之间发现差异,这主要是由于涉及不同的路径。请尝试在批处理文件中首先执行cd <test.rmd的完整路径> - Dieter Menne
1
你可能还需要定义到 Rscript 的路径。这是我的解决方案:"C:\Program Files\R\R-3.2.2\bin\x64\Rscript.exe" -e "library(knitr); knit('myFile.Rmd')" - Amit Kohli

0

我使用

"C:\Program Files\R\R-3.5.1\bin\Rscript.exe" -e "library('knitr'); knit('C:/Users/test_doc.Rmd')"
pause

就像“cbeleites支持Monica”所说,使用完整路径。

不要忘记,在R中我们必须使用“/”,而不是Windows中的“\”。

因此,在与Windows通信时,我们在R调用中使用“\”,而在knit中使用“/”与R通信。

希望这有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接