我的主要编程风格:
- 重度向量化,我会经常使用索引(以及嵌套索引),这样有时会导致代码变得不太容易理解,但通常比其他解决方案更快。例如:
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中什么是好的编程实践?
你的编程风格是什么,你如何看待它的优缺点?
x[x < 5] <- 0
),我会倾向于使用data.table
的:=
运算符。你的优先级是快速代码、紧凑代码还是易读性稍微降低一些的性能惩罚?此外,请展示一些自定义函数的示例,以便人们可以评论。 - smci