El paquete reshape de R (I): melt
El paquete reshape de R consta esencialmene de dos funciones, melt
y cast
, muy útiles para determinado tipo de transformaciones de de datos.
La función melt
se describe sucintamente con el siguiente gráfico:
Es decir, toma un data.frame
y lo funde (¡dejaré de ser amigo de quien pronuncie meltea!) o, visto de otra manera, estira.
He aquí unos ejemplos:
library(reshape)
iris.m <- melt(iris)
iris.m
Nótese cómo melt
es inteligente y no necesita (en muchas ocasiones) que se le especifiquen cosas evidentes. De hecho, la expresión anterior es equivalente a las siguientes:
iris.m <- melt( iris, id.vars = "Species" )
iris.m <- melt( iris, id.vars = 5 )
iris.m <- melt( iris, id.vars = "Species", measure.vars = 1:4 )
iris.m <- melt( iris, id.vars = 5, measure.vars = 1:4 )
Un ejemplo un poco más sofisticado es el siguiente:
library( plm )
data( Produc )
produc.m <- melt( Produc )
produc.m
Que no produce los efectos deseados. Más bien, queremos
produc.m <- melt(Produc, id = c("state", "year") )
produc.m
El próximo día nos ocuparamos de su función compañera, cast
.