Las preguntas recientes sobre el uso de require versus :: plantearon la pregunta sobre qué estilos de programación se usan al programar en R, y cuáles son sus ventajas/desventajas. Navegando por el código fuente o navegando en la red, verá una gran cantidad de estilos diferentes que se muestran.Práctica de codificación en R: ¿Cuáles son las ventajas y desventajas de diferentes estilos?
Las principales tendencias en mi código:
que juegan mucho con los índices y los índices (anidados), que se traduce en código bastante oscura a veces, pero generalmente es mucho más rápido que otras soluciones. por ejemplo:
x[x < 5] <- 0
en lugar dex <- ifelse(x < 5, x, 0)
tiendo a anidar funciones para evitar la sobrecarga de la memoria con objetos temporales que tengo que limpiar. Especialmente con funciones que manipulan grandes conjuntos de datos, esto puede ser una carga real. por ejemplo:
y <- cbind(x,as.numeric(factor(x)))
en lugar dey <- as.numeric(factor(x)) ; z <- cbind(x,y)
Escribo muchas funciones personalizadas, incluso si uso el código solo una vez en, por ejemplo. una sapply. Creo que lo mantiene más legible sin crear objetos que puedan permanecer por ahí.
que evitar bucles a toda costa, ya que considero vectorización ser mucho más limpio (y más rápido)
Sin embargo, me he dado cuenta de que las opiniones sobre este difieren, y algunas personas tienden a respaldar lejos de lo que llamarían mi forma de programación "Perl" (o incluso "Lisp", con todos esos corchetes volando en mi código. Sin embargo, no llegaría tan lejos).
¿Qué considera una buena práctica de codificación en R?
¿Cuál es su estilo de programación y cómo ve sus ventajas y desventajas?
+1 por ser demasiado listo. Aunque, me acostumbré a usar índices que puedo leer con bastante facilidad el código y ver qué hace. Pero estoy de acuerdo en que eso no siempre es tan obvio para el que viene detrás de mí. –
¿No es eso para lo que son los comentarios? – naught101
Bueno, sí, pero un código R puede ser muy críptico, así que, aunque sé lo que hace algo, cómo lo hace puede ser más fácil de adivinar si el código es legible y comprensible también. –