在R
中编程有什么好的做法?您在R中使用什么最佳实践进行编程?
由于R
是一种特殊用途的语言,我并不是一直都在使用,所以我通常只是将一些快速脚本拼凑在一起,以满足需要。
但是,编写干净而高效的代码有哪些技巧?
在R
中编程有什么好的做法?您在R中使用什么最佳实践进行编程?
由于R
是一种特殊用途的语言,我并不是一直都在使用,所以我通常只是将一些快速脚本拼凑在一起,以满足需要。
但是,编写干净而高效的代码有哪些技巧?
我推荐Josh Reich从this previous question开始的Load,Clean,Func,Do工作流程。
另外,我建议遵循如下编码准则,如Google's R Style Guide。使用编码风格指南使得后面的代码更容易阅读。
我希望'点'命名约定没有在该风格指南(例如some.variable.name)中被认可。它的历史在它的一边,大多数R代码是这样写的,尽管如此,不是粉丝。 – doug 2010-02-13 16:25:03
我同意道格。我自己使用camelCase。风格指南,比如版本控制,更少关于你选择哪一个,更多关于挑选和使用它。 – 2011-08-05 12:11:03
你已经提供了一些提示,声明你的方法是'破解快速脚本'。如果你想要的最佳实践和结构,简单按照建立的最佳实践从CRAN:
R CMD check
这是非常有用R CMD check
在文档的\examples{}
部分添加代码,因为这将运行,并提供了一个方便快捷的出入回归测试我与现有的答案完全一致,特别是关于套餐的使用。软件包需要很多纪律,文档和结构,这确实有助于实施最佳实践(以及R CMD CHECK)。您也可以使用the codetools package来解决这个问题。使用roxygen软件包进行文档编制。除此之外,我建议你不仅向量化你的代码,更特别的是,尽一切努力来矢量化你的函数,这意味着你应该能够提供向量参数并且返回向量(即使是从像数据库调用)。从长远来看,这将真正提高您的代码效率和清晰度。
最后,我真的很喜欢用Sweave这样的东西来将我的代码组织成清晰的文字重现性研究,无论何时写报告。除此之外,我建议使用缓存包。
谢谢你的回答谢恩。 你有没有使用“codetools”包的例子? – 2010-02-14 11:21:05
为了提高效率,优先于for
循环的矢量操作。
这是一般的编程习惯,但是使用SVN等版本控制系统来管理你的代码。
感兴趣的相关问题:http://stackoverflow.com/questions/1295955/what-is-the-most-useful-r-trick(SO应该找到更好的工作,它显示jQuery和Windows 7问题为“相关”)。 – Frank 2010-02-14 14:12:19