¿Soy un dinosauRio? Sobre las novedades de R
Trato de estar abierto a lo nuevo. Tantos años soportando dinosaurios me han vacunado contra el conservadurismo tecnológico. De hecho, me produce arcadas. La experiencia, no obstante, me ha hecho permeable al efecto Lindy, lo que me da ocasión de saludar a mis amigos emaqueros.
Las cosas cambian y en R estamos viviendo una especie de revolución. Mi argumento, para impacientes, es que:
- Es más superficial que sustancial: es azúcar sintáctico.
- En ciertos aspectos, no es positiva y mina ciertos principios valiosos que hicieron de R un lenguaje popular.
Cuento todo esto a raíz de una reseña a un novedoso curso de R. Lo es en tanto que, dicen:
- Ignora los procedimientos clásicos (old-school) de manipulación de datos en R e introduce directamente
dplyr
. - Llega a
ggplot2
sin pasar porplot
.
Nunca he sido particularmente partidario de dplyr
por varios motivos:
- Llegó para solucionar problemas que ya no teníamos (gracias a
plyr
ydata.table
). - No te permite hacer cosas nuevas; pero te obliga a hacerlas de una manera distinta.
- ¿Es algo más que un poco de azúcar sintáctico?
Ocultar al neófito todo lo que hubo tiene ciertas ventajas (las conozco) pero también un grave inconveniente: esa gente no sabrá leer código ajeno, código anterior. Creo que es mejor enseñar el canon y luego, una vez que alguien sabe escribir
a <- foo(b)
advertirle que hay gente que también escribe, y que es lo mismo,
a <- b %>% foo
O que una vez que hace suya la operación (abstracta) groupby, decirle que no hay más remedio que asumir que hay tres o cuatro maneras distintas de transcribirla en R. Que la sintaxis, en definitiva, es una añadidura tan superficial y sutil como la diferencia entre el teclado español y el estadounidense. Que en programación hay que ser chomquista, pensar en la gramática universal y teclear en la sintaxis que toque.
¿Y sobre los gráficos? Bien, los de ggplot2
son resultones. Concedido. Pero muchos no usamos R (solo) para hacer gráficos chulos. Usamos R para analizar datos. Y queremos poder inspeccionar la columna edad
con un brevísimo
hist(dat$edad)
(¿ocho golpes de tecla?) para entender rápidamente su distribución sin enredarnos en toda la gramática de los gráficos del Sr. Wilkinson.
R no es un lenguaje de programación. R es un entorno para el análisis estadístico y gráfico de datos que también es un lenguaje de programación. Lenguajes de programación hay muchos y de todo pelaje. Entornos para analizar datos, muchos menos y casi todos pésimos. Por eso tenemos que ser cuidadosos en los cambios y sopesar bien lo que se gana y lo que se pierde y, por encima de todo, saber qué somos y a dónde queremos llegar.