使用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不能彼此失败的可能性,并使我的心脏受了重伤。
有什么更好的方法我想念吗?