最近关于使用 require 与 :: 的问题提出了在 R 中编程时使用哪种编程风格以及它们的优点/缺点是什么的问题。浏览源代码或上网浏览,您会看到很多不同的样式显示。
我的代码中的主要趋势:
重向量化我经常使用索引(和嵌套索引),这有时会导致代码相当模糊,但通常比其他解决方案快得多。例如:
x[x < 5] <- 0
而不是x <- ifelse(x < 5, x, 0)
我倾向于嵌套函数以避免因需要清理的临时对象而使内存过载。特别是对于处理大型数据集的函数,这可能是一个真正的负担。例如:
y <- cbind(x,as.numeric(factor(x)))
而不是y <- as.numeric(factor(x)) ; z <- cbind(x,y)
我编写了很多自定义函数,即使我在例如只使用了一次代码。一个
sapply
。我相信它可以使它更具可读性,而不会创建可以留在周围的对象。我不惜一切代价避免循环,因为我认为矢量化更干净(更快)
然而,我注意到对此的看法不同,有些人倾向于放弃他们所谓的“Perl”编程方式(甚至是“Lisp”,所有这些括号都在我的代码中飞来飞去。我不会不过不要走那么远)。
您认为 R 中的良好编码实践是什么?
你的编程风格是什么,你如何看待它的优点和缺点?