创建 Python 包时,您可以使用 setup
的 entry_points
参数创建“命令”(请参阅 here )。我想知道在创建 R 包时是否可以执行相同的操作。
例如运行后
install.packages("mypackage")
如果能够使用就太好了
mypackage_clitool arg1 arg2
无需使用 Rscript。 R 包中是否可以有这样的入口点?
我无法在任何地方找到答案,但作为引用,以下是部分解决此主题的一些资源:
Answer about turning a CLI into an R package - the opposite direction
CLI library - I couldn't find any instructions for installing via a package here
最佳答案
您可以编写脚本并将它们放在包中的 inst/scripts
目录中;它们将与包一起安装到包目录中的 scripts
中。您的脚本可能类似于 ?Rscript
中针对 Unix 类系统的示例:
#! /path/to/Rscript --vanilla --default-packages=utils
args <- commandArgs(TRUE)
res <- try(install.packages(args))
if(inherits(res, "try-error")) q(status=1) else q()
在 Windows 上,它需要具有不同的格式,因为通常的 shell 不支持 #!
脚本。
您可以编写代码将 scripts
目录(即 system.file("scripts", package = "mypackage")
的结果)放在用户的 PATH
,但这只持续当前 R session ,并且只能从 R 启动的命令中看到。您可以向用户编写指令,将其放入用户的 PATH
中> 他们自己。在 CRAN 包中只有后者是可接受的。
关于r - 将 CLI 工具包含在 R 包中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63202446/