5.2 简洁化
让你的函数尽可能地简洁化.这样做有很多优点:
- 简单的函数对于人类是高效的:他们可以很容易地理解和修改.
- 简单的函数对于计算机的执行也是高效的.
- 简单的函数不容易出错,即使出错了也容易找到问题.
- 简单的函数或许是最普遍的–考虑到问题的本质经常拓宽应用.
如果你的解决方案对于问题看起来过于复杂,那么它很可能是真的.或许对于简单的问题R并没有一个简单的解决方案,但这是非常少见的.
下边是对于简洁化的一些建议:
- 一个原子向量可以胜任的不要使用列表.
- 一个矩阵可以胜任的不要使用数据框.
- 不要努力尝试一个原子向量当一个列表需要的时候.
- 不要努力尝试矩阵当一个数据框需要的时候.
在你书写你的函数的时候适当地格式化你的函数应该成为一个标准的流程.”适当地”包括基于逻辑结构的缩进,在操作符之间放置空格.轮回8.1.30将展示在逻辑操作符周围放置空格是有非常大的好处的.
如果你将两个R命令放在一行,那么一个分号(;)可以被用来将它们分开.一些人喜欢在每一行的最后放置一个分号.这严重地使习惯R规范的使用者感到不舒服.这种反应看起来更多的是来自心理的影响而不是程序逻辑方面的影响,但是这仍旧有些逻辑方面的影响:
- 分号制造了一些低效率(细微的).
- 分号给人一种正在做什么事情的错觉.
追求简洁化的一个原因是运行速度.Rprof()是一个非常方便的探求代码中哪个函数运行时间最长的方法.
(Rprof的命名跟时间剖面有关).