经典而精彩的Programming Perl参考书中有一个部分,其中作者提供了有关如何编写最高计算效率的Perl的建议列表,然后是如何使用的建议列表编写最高效的程序员的Perl,然后为维护者高效, porter高效和用户效率提供更多建议。建议通常是完全矛盾的。 (例如,“使用全局变量”,“不要使用全局变量。”)
我在努力将一些“程序员高效”的R代码转换为“计算和维护者有效”代码时考虑到了这一点。
这些线条的R风格有哪些有趣且有用的提示?哪些实践最有效的程序员,以及解决其他效率概念的等效实践是什么?
答案 0 :(得分:19)
Programmer efficient | Computationally efficient | Write everything in R | Call C/Fortran routines Reuse code | Custom create everything (functions not scripts, | packages not individual functions) | Use high level functions | Use low-level functions Write things that work | Write it, profile it, optimise it. | Repeat ad infinitum.
答案 1 :(得分:2)
你可以指望什么是缓慢的是在循环中重建数据的任何东西,比如将元素附加到向量,如果已经做了很多。
答案 2 :(得分:1)
我认为样式指南(如之前所讨论的那样)有助于程序员的效率。 R Core似乎同意提供一些提示(以及用于一致缩进的Emacs参数)。
法令更难以实现执行效率。你可能不得不回到经验法则('vectorise')以及分析。