如何从R中调用Rscript?

4

我正在开发一个软件包,可以通过R接口(一堆可交互使用的函数)和Rscript命令行接口来使用。其中,通过一个小启动器来实现命令行接口,在命令行中输入:

Rscript mylauncher.R arg1 arg2 arg3

我希望调用我的包中的一个函数。 我想测试一些来自R的命令行。没什么花里胡哨的,只是确保一切都能正常运行而没有错误。 如果我在一个R源文件中测试这些调用:

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

如果有多个R安装(这实际上是我的情况),我该如何确保我调用了正确的R脚本?另一种方法是在R源文件中写入:

source("mylauncher.R")

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

谢谢!


你是否知道“你可以从R中调用R”?换句话说,当你已经在R中时,你为什么需要使用Rscript呢? - Dirk Eddelbuettel
@DirkEddelbuettel 我认为我已经解释过了,“我想测试一下从R中运行几个命令行”,也就是说,我想测试一下在Unix终端中输入一些命令是否会导致错误,并且这个错误不是由于调用了错误版本的Rscript引起的。 - JavaNewbie
也许(在Unix系统上)可以使用 system("which Rscript") - Ben Bolker
1个回答

5

关于如何确定我是否调用了正确的Rscript?如果有多个R安装怎么办?

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

然后,您需要附加bin/RScript,这样就可以得到与当前会话相对应的Rscript。我仍然设计我的库,以便可以从R中调用它们...


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