将命令行脚本与R包一起使用

13

我有兴趣为我编写的Slidify R包提供一个命令行界面。它使用Rscript,这使它跨平台。脚本存储在子目录inst/slidify中。为了从任何目录使用脚本,我将其路径添加到我的.bash_profile中,因为我在Mac上。

我的问题是:

  1. 如何以自动化的跨平台方式处理脚本的安装?
  2. 如何确保文件权限在此过程中得到保留?
  3. 脚本的shebang行应该怎么写?我目前正在使用

    #!/usr/bin/Rscript --vanilla --slave

我希望能得到如何处理这个问题的指导以及任何已经完成此操作的R包示例。请注意,用户只需在命令行中运行slidify generate slides.Rmd,即可从slides.Rmd生成幻灯片。

更新:

以下是我如何在Mac上通过命令行安装的。我使用37信号出品的优秀sub库创建这些脚本。

echo "$(path/to/clidir/slidify init -)" >> ~/.bash_profile exec bash

两个后续问题:

  1. 我可以将这些命令封装成一个R函数install_slidify_cli吗?
  2. 如何为Windows用户复制这些命令?
1个回答

8

我很喜欢 slidify,所以很愿意提供帮助。

但简单来说,不行。

R软件包只能安装在$R_HOME或者用户选择的库文件夹中。将脚本打包到软件包中,并告诉用户复制它。如果有更好的方法,那么早就会在 littler 软件包 /Rscript 的前身/替代品中使用了,而且 roxygen /roxygen2 也会提供相应的功能。


我相信 pgfSweave 曾经提供过这样的脚本,但是显然他们后来决定自动安装是违反规则的。 - baptiste
2
他们这样做了,结果很糟糕。当时我还在运行cran2deb自动构建工具,它让我很头疼。完全是牛仔式的、非常疯狂。幸运的是,有人把他们赶走了 :) - Dirk Eddelbuettel
目前可能会保持非Windows系统。鉴于您提供的多个选项,您会推荐哪一个? - Ramnath
谢谢。我会尝试在r-devel上发布一个问题。 - Ramnath
你能否通过使用函数来“模拟”脚本呢?比如一个脚本需要3个参数,你是否可以创建一个同样需要这3个参数的函数,并创建一个“外壳”脚本,该脚本获取这3个参数,加载包并使用适当的参数调用包中的函数呢? - W7GVR
显示剩余3条评论

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