是否有一种优雅的方法可以从命令行运行包含在已安装包中的脚本,并带有参数。
所以,我知道我们可以做类似的事情:
Rscript path/package/scritpts/script.R arg1 arg2 arg3
但我想要一些更优雅的东西。因为path/package
有时可能是荒谬的。
答案 0 :(得分:1)
答案不是很多,而是一个使用system.file
的简单例子:
# Rscript --vanilla pkgscript.R packagname scriptname.R arg1 arg2 arg3
args <- commandArgs(trailingOnly = TRUE)
if (length(args) < 2L) {
# print out "Usage:" stuff
stop("Usage: ...")
} else {
fnames <- list.files(path = system.file(package = args[1]), pattern = args[2],
recursive = TRUE, full.names = TRUE)
lfn <- length(fnames)
if (lfn == 0L) {
stop("no script found for: ", sQuote(args[2]))
} else if (lfn == 1L) {
# do something with args[-(1:2)]
source(fnames)
} else {
stop("multiple scripts found for: ", sQuote(args[2]))
}
}
答案 1 :(得分:0)
Dirk通过他的littler
包提供了可行的解决方案:
Rscript $(R -e 'cat(system.file("scripts","file.R",package = "pkg"))') arg1 arg2 arg3