您在R中使用哪些最佳实践进行编程?

Fra*_*ank 34 r

编程有哪些好的做法R

由于R我不是一直使用的特殊用途语言,我通常只是将一些快速脚本组合在一起,以满足我的需求.

但是编写干净,高效的R代码有哪些技巧?

Dir*_*tel 20

您已经提供了一些提示,说明您的方法是"破解快速脚本".如果您需要最佳实践和结构,请简单地遵循CRAN 的既定最佳实践:

  • 创建一个包,这打开了运行的大门,R CMD check这是非常有用的
  • 正如许多人所说,有一个软件包可以帮助你进行代码编写阶段,因为你有点被迫记录代码; 这是一件好事(TM)
  • 一旦你有了一个软件包,就可以在\examples{}文档的部分添加代码,因为它将在运行期间运行,R CMD check并且可以轻松进入回归测试
  • 一旦习惯了回归测试,就开始使用像RUnit这样的包; 这确实最好的做法
  • JD指向Google Style Guide的指针也很好.这不是唯一的风格指南,例如Henrik的R编码公约在它之前几年; 还有Hadley在Google风格指南上的重复段
  • 否则,老人 - 但是黄金'做你的同事和共同作者所做的'也适用


JD *_*ong 14

我从上一个问题推荐Josh Reich的Load,Clean,Func,Do工作流程.

此外,我建议遵循以下编码指南,例如Google的R风格指南.使用编码样式指南使得以后阅读代码变得更加容易.

  • 我希望'dot'命名约定不在该样式指南中得到认可(例如,some.variable.name).它有历史,大多数R代码都是这样编写的,但不是风扇. (3认同)

Sha*_*ane 6

我完全同意现有的答案,特别是关于包的使用.软件包需要大量的规程,文档和结构,这确实有助于实施最佳实践(以及R CMD CHECK).您还可以使用codetools包来帮助解决此问题.使用roxygen包进行记录.

除此之外,我建议你不仅要对代码进行矢量化,更重要的是,尽一切努力对你的函数进行矢量化,这意味着你应该能够提供向量参数并返回向量(甚至可以从数据库调用之类的东西).从长远来看,这将真正提高您的代码效率和清晰度.

最后,我非常喜欢使用像Sweave这样的东西,在编写报告时将我的代码组织成清晰的文字可重复研究.除此之外,我建议使用缓存包.