如何从 R 调用 Rscript?

How to call Rscript from R?

我正在开发一个程序包,它公开了一个 R 界面(一组可以交互使用的函数)和一个通过 Rscript 的命令行界面。第二个通过一个小型启动器工作,例如,在命令行:

Rscript mylauncher.R arg1 arg2 arg3

会调用我的包的一个函数。 我想从 R 测试几个命令行。没什么特别的,只要确保一切运行无误即可。 如果我在 R 源文件中测试这些调用:

system("Rscript mylauncher.R arg1 arg2 arg3")

如何确定调用了正确的 Rscript?如果有多个 R 安装? (在我的设置中实际上就是这种情况)。 另一种方法是在 R 源文件中写入:

source("mylauncher.R")

但我不知道如何指定命令行(我会避免覆盖函数 commandArgs 的技巧,因为我还想测试命令行的正确标记化)。有人有想法吗?

谢谢!

关于

How can I be sure that I called the right Rscript? In case there are multiple R installations?

您将在命令行上查询 R RHOME 并从 R 中查询 Sys.getenv("R_HOME")

然后您追加 bin/RScript 并且应该有与您当前会话相对应的 Rscript。我仍然以可以从 R 调用它们的方式设计我的库 ...