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.

5 comentarios sobre “El paquete reshape de R (I): melt

  1. Otto Wagner 7 septiembre, 2011 12:21

    Yo juraría que esto en SAS es un pelín más largo…

  2. jjgibaja 7 septiembre, 2011 16:38

    Muy interesante. La función compañera a la que aludes es cast, ¿no?

  3. sergiojsj 8 septiembre, 2011 9:14

    Muy interesante la función melt también para la producción de gráficos con multiples series con ggplot2

  4. datanalytics 8 septiembre, 2011 14:39

    @sergiojsj
    Sí, es sorprendente lo útil que puede llegar a resultar la función melt. En muchas situaciones y para muchos fines es conveniente trabajar con datos «verticales».

Los comentarios están desabilitados.