¿Qué convenciones para nombrar variables y funciones prefiere en el código R?
Por lo que puedo decir, hay varias convenciones diferentes, todas las cuales coexisten en una armonía cacofónica:
1. Uso de separador de puntos, p. Ej.
stock.prices <- c(12.01, 10.12)
col.names <- c('symbol','price')
Ventajas: tiene precedencia histórica en la comunidad R, prevalece en todo el núcleo R y es recomendada por la Guía de estilo R de Google .
Contras: lleno de connotaciones orientadas a objetos y confuso para los novatos de R
2. Uso de guiones bajos
stock_prices <- c(12.01, 10.12)
col_names <- c('symbol','price')
Ventajas: una convención común en muchos idiomas de programación; favorecido por la Guía de estilo de Hadley Wickham y utilizado en los paquetes ggplot2 y plyr.
Contras: No históricamente utilizado por los programadores de R; está molestamente mapeado al operador '<-' en Emacs-Speaks-Statistics (modificable con 'ess-toggle-underscore').
3. Uso de capitalización mixta (camelCase)
stockPrices <- c(12.01, 10.12)
colNames <- c('symbol','price')
Ventajas: parece tener una amplia adopción en varias comunidades lingüísticas.
Contras: Tiene un precedente reciente, pero no se ha utilizado históricamente (ni en la base R ni en su documentación).
Finalmente, como si no fuera lo suficientemente confuso, debo señalar que la Guía de estilo de Google aboga por la notación de puntos para las variables, pero la combinación de mayúsculas para las funciones.
La falta de estilo coherente en todos los paquetes de R es problemática en varios niveles. Desde el punto de vista del desarrollador, dificulta mantener y extender el código de otros (especialmente cuando su estilo es inconsistente con el suyo). Desde el punto de vista de un usuario de R, la sintaxis inconsistente hace que la curva de aprendizaje de R sea más pronunciada, al multiplicar las formas en que se puede expresar un concepto (por ejemplo, ¿esa función de conversión de fecha es comoDate (), as.date () o as_date ()? No, es como. Fecha()).
ImfDataTransformed
o la versión natural extendida IMFDataTransformed
no son tan fáciles de leer como mi TOGGLEcamelCase preferido: IMFdataTransformed
...
alllowercase
nombres de variables, y un montón de nombres muy cortos rectos-de-la-ecuación (x
,y
, etc.).