我正在开发一个包暴露R接口(一组交互式使用的函数)和一个命令行接口通过Rscript的包。第二个通过一个小型启动器工作,例如,在命令行:
Rscript mylauncher.R arg1 arg2 arg3
会调用我的包的功能。 我想测试来自R的几个命令行。没什么好看的,只要确保一切运行没有错误。 如果我在R源文件中测试这些调用:
system("Rscript mylauncher.R arg1 arg2 arg3")
我如何确定我拨打了正确的Rscript?如果有多个R安装? (在我的设置中实际情况如此)。 另一种方法是写入R源文件:
source("mylauncher.R")
但是我没有看到如何指定命令行(我会避免覆盖函数commandArgs
的技巧,因为我想测试命令行的正确标记化)。有人有想法吗?
谢谢!
答案 0 :(得分:2)
关于
我如何确定我拨打了正确的Rscript?万一有 多个R装置?
您将在命令行上查询R RHOME
,并从wihthin R查询Sys.getenv("R_HOME")
然后,您附加bin/RScript
,并且Rscript
应与您当前的会话相对应。我仍然以这样的方式设计我的库,我可以从R ...中调用它们。