将bash脚本合并到R包中?

Dav*_*uer 6 bash workflow r

背景

我正在编写R包以支持可重复的研究.此时,工作流主要由bash脚本组合在一起,我可以通过发送单个命令来运行分析./runscript.sh.我使用bash进行以下操作:

  1. 文件操作tar,rsync"重命名"
  2. 在本地和通过运行bash文件 ssh
  3. 使用R --vanilla它来运行R脚本依次调用R函数
  4. 使用查找和替换文件中的文本 sed
  5. 通过提交工作 qsub

在我看来,从R函数或R脚本执行整个工作流程会更有效(更清晰,更简单).我偏爱R,因为我对它更熟悉并且主要在emacs ESS中工作.

问题

  1. 使用systemfiles函数将所有这些bash的使用封装在R中是否值得?

  2. 还有其他我尚未找到的R套件会对此有帮助吗?

笔记

按照Al3xa的回答,我意识到重要的是要注意使用例如速度惩罚.R vs bash版本的tar和gsub在1000-2000文件上可能会小于工作流程中的当前限速步骤:JAGS(~10-20min)和FORTRAN(> 4hrs)的计算

Noa*_*oah 1

我非常喜欢使用 R 作为“集成”环境而不是 bash 脚本。我正在将所有 bash 和 ruby​​ 脚本移动到 Rscript,因为我需要对它们进行更改。

不将所有内容都转移到 R 中的原因只有几个。我主要指的是使用 Rscript 来完成此任务

1)速度,根据我的测试,在我遇到的任何情况下,速度的影响都是中等的,并且相对于你提到的时间来说是微不足道的。

2) 可移植性,因为 Rscript 等的路径在不同系统中可能不同。我在 OS X 上编写东西并将它们移动到 Linux 服务器上没有任何问题,但在 Windows 上可能会崩溃。

我的书中的优点是:

1)我写起来容易多了。我不必在条件语句和 for 循环之类的轻微特性之间来回切换。

2)更加宽容。我无法描述我花了多少时间尝试让 bash 脚本正常工作,因为我不小心在不应该有的地方出现了空格。R 在这方面要好得多(是的,当然,我们都应该完美地遵循 R 中的约定,但我宁愿它不要让我在我不这样做的情况下耽搁几个小时)。

3)我的工作做得更好。对于tar文件来说这并不重要,但我发现我在 R 中的文本操作比在 R 中更好awk/sed

回复:有用的软件包 - 据我所知,这不存在,但我喜欢make基于 R 的版本。 make 的语法是最不灵活的语法之一(制表符与空格?真的吗?) -我很想写一个基于 R 的替代方案。有一天,我会...