gpt4 book ai didi

bash - 将 bash 脚本合并到 R 包中?

转载 作者:行者123 更新时间:2023-11-29 09:01:04 24 4
gpt4 key购买 nike

背景

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

  1. 文件操作 tar, rsync, 'rename'
  2. 在本地运行 bash 文件并通过 ssh
  3. 使用 R --vanilla 运行 R 脚本,然后调用 R 函数
  4. 使用 sed 查找和替换文件中的文本
  5. 通过qsub提交工作

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

问题

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

  2. 是否还有其他我尚未发现的 R 包对执行此操作有帮助?

注意事项

在 Al3xa 的回答之后,我意识到重要的是要注意使用 eg 的速度损失。 R vs bash 版本的 tar 和 gsub 在 1000-2000 个文件上可能会低于工作流中的当前速率限制步骤:JAGS(~10-20 分钟)和 FORTRAN(> 4 小时)的计算

最佳答案

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

我想到的只有几个不将所有内容移入 R 的原因。我指的主要是使用 Rscript 来完成这个

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

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

我这本书的优点是:

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

2) 更宽容。我无法描述我花了多少时间试图让 bash 脚本工作,因为我不小心有一个我不应该有的空间。 R 在这方面要好得多(是的,当然,我们都应该完全遵循 R 中的约定,但如果我不这样做,我宁愿它不会让我耽搁几个小时)。

3) 我做得更好。对于 tar 文件,这无关紧要,但我发现我在 R 中的文本操作比 awk/sed 更好。

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

关于bash - 将 bash 脚本合并到 R 包中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5094753/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com