r - 将 CLI 工具包含在 R 包中

标签 r package command-line-interface

创建 Python 包时,您可以使用 setupentry_points 参数创建“命令”(请参阅​​ here )。我想知道在创建 R 包时是否可以执行相同的操作。

例如运行后

install.packages("mypackage")

如果能够使用就太好了

mypackage_clitool arg1 arg2

无需使用 Rscript。 R 包中是否可以有这样的入口点?

我无法在任何地方找到答案,但作为引用,以下是部分解决此主题的一些资源:

Answer about turning a CLI into an R package - the opposite direction

Tutorial explaining how to run R code from the command line, but not how to install a CLI tool with an R package

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/

相关文章:

r - DT Shiny中的复选框

r - ggplot2 - 如果为负则反转调色板

c++ - 使用 C++/CLI 打开和读取 Excel 文件

来自 data.frame 每一列的随机样本

python - 是否使用 -m 选项执行 Python 代码

r - 我可以获得 install.packages 将使用的内容的 URL 吗?

javascript - 如何使用可通过脚本元素使用的 webpack 创建独立模块?

使用 cPanel 运行 CentOS 的 VPS 服务器上的 PHP CLI "Out of memory"错误

c++ - 如何绘制到控制台/终端的某个部分?

r - R如何根据现有数据创建列/功能