使用 R 脚本从命令行进行简单绘图非常方便。但是,从 bash 脚本运行 R 一点也不方便。理想可能是这样的
#!/path/to/R
...
或者
#!/usr/bin/env R
...
但我无法完成其中任何一项工作。
另一种选择是将脚本纯粹保留在 R 中,例如,并使用或类似方法script.R
调用它。R --file=script.R
但是,有时脚本会依赖于晦涩的命令行开关,此时部分代码存在于脚本之外。示例:通过本地 .Rprofile 将东西从 bash 偷偷带入 R,所需的开关就是--vanilla
除--no-init-file
.
另一种选择是一个 bash 脚本来存储 R 标志并且可以轻松执行,然后调用 R 脚本。问题在于,这意味着一个程序刚刚被拆分为两个文件,现在必须保持同步,一起转移到新机器上,等等。
我目前最不鄙视的选项是将 R 嵌入 bash 脚本中:
#!/bin/bash
... # usage message to catch bad input without invoking R
... # any bash pre-processing of input
... # etc
R --random-flags <<RSCRIPT
# R code goes here
RSCRIPT
一切都在一个文件中。它是可执行的并且很容易处理参数。问题是,像这样结合 bash 和 R 几乎消除了任何 IDE 不会在其中一个或另一个上失败的可能性,并且让我的心非常痛。
我错过了一些更好的方法吗?