最近关于使用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中的良好编码实践是什么?
您的编程风格是什么,您如何看待它的优缺点?
我记得,有Emacs的模式,抑或是一种选择,可以不记得,通过像运营商后放置空间美化代码,,.裹=带空格,和其他一些冷却的东西,我不记得了.
我认为这是特定于语言的问题,但我通常在逗号之后放置空格,并=用空格包装.关于这种模式的任何想法?