x[] <- lapply(...)
Estos días he aprendido una expresión muy compacta para operar sobre las columnas de una tabla en R:
x <- iris # por ejemplo
x[] <- lapply(x, function(x) factor(x)) # o cualquier otra función
Aunque lapply
debería devolver (y, de hecho, devuelve) una lista, esos corchetes de x
fuerzan de una manera contraintuitiva que la salida final sea una tabla.
La magia es consecuencia de que [<-
es una función en sí misma (puedes consultar help("[<-")
si quieres) con un comportamiento que es el que es (porque sí, a veces las cosas son simplemente como son).