首页 > 解决方案 > 带有命令行参数的默认 R 输出

问题描述

我正在尝试提供一种通过 Rscript 运行无人值守 R 脚本的方法。我遇到的问题是图形的默认输出是当前目录中的 PDF 文件。我想将此输出重定向到一个单独的文件夹,但不必过多地更改脚本。

如果我的脚本很简单:

args = commandArgs(trailingOnly = TRUE)

mydata <- get some data frame somehow
plot(tayside)

我执行以下命令行:

Rscript.exe --vanilla --default-packages=RODBC,graphics,grDevices sample.R > C:\temp\sample.Rout

Rplots.pdf在当前文件夹中得到一个和sample.Rout文件C:\temp\夹中的文件。

有没有办法指定一个输出文件夹并让 Rscript 把所有输出放在那里?我曾尝试使用 将pdf.options(...)默认文件夹预先添加到file参数中,但无法做到。

标签: routputrscript

解决方案


好的,显然它比我想象的要容易,无需使用pdf.options(),只需pdf()在文件顶部(获取参数后):

pdf(paste0(args[1], "MyFile.pdf"))

或者,对于多个文件:

pdf(paste0(args[1], "MyFile%03d.pdf"), onefile=FALSE)

推荐阅读