使用 R 脚本从命令行进行简单的绘图非常方便。但是,从 bash 脚本运行 R 一点也不方便。理想状态可能是
#!/path/to/R
...
或者
#!/usr/bin/env R
...
但这两样我都做不到。
另一种选择是将脚本完全保存在 R 中,例如 script.R
,并使用 R --file=script.R
或类似方法调用它。但是,有时候脚本会依赖于模糊的命令行开关,此时部分代码存在于脚本之外。示例: 通过局部。所需的开关就是除了 --no-init-file
之外 --vanilla
所暗示的一切。
另一个选项是 bash 脚本,它存储 R 标志并且可以无痛执行,然后调用 R 脚本。问题是,这意味着一个单独的程序被分割成两个文件,现在必须保持同步,一起传输到新的机器上,等等。
目前我最不喜欢的选项是在 bash 脚本中嵌入 R:
#!/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 在其中一个或另一个上不会失败的可能性,这让我非常伤心。
还有什么更好的办法吗?