wide long funcion examples r reshape reshape2

long - reshape2 r



¿Por qué el Melt de reshape2 no puede capturar nombres en la transformación? (1)

No sé la parte de por qué , pero sí sé que puede obtener los nombres de las filas al melt una matrix lugar de un data.frame :

melt(as.matrix(dat)) # Var1 Var2 value # 1 Cubn FOO 3.7145516 # 2 Gm9779 FOO 2.5605166 # 3 Apod FOO 3.5179670 # 4 Cubn BAR 0.2374546 # 5 Gm9779 BAR 0.2085075 # 6 Apod BAR 0.1959992

Tendrá que mirar el código de la función de melt para saber por qué se comporta de esta manera. En particular, el código para reshape2:::melt.matrix tiene las siguientes líneas que crearán las dos primeras columnas en el ejemplo anterior:

labels <- expand.grid(lapply(dn, var.convert), KEEP.OUT.ATTRS = FALSE, stringsAsFactors = FALSE)

Tengo los siguientes datos:

Cubn 3.71455160837536 0.237454645363458 Gm9779 2.56051657980096 0.20850752817264 Apod 3.51796703048962 0.195999214485821

Lo que quiero hacer es crear los datos ''fundidos'' de manera que proporcionen esta

var1 var2 value 1 FOO Cubn 3.7145516 2 FOO Gm9779 2.5605166 3 FOO Apod 3.5179670 4 BAR Cubn 0.2374546 5 BAR Gm9779 0.2085075 6 BAR Apod 0.1959992

Pero ¿por qué esto falló?

library("reshape2"); dat <-read.table("http://dpaste.com/1446132/plain/",header=FALSE) rownames(dat) <- dat[,1] dat[,1] <- NULL colnames(dat) <- c("FOO","BAR"); head(dat) longData <- melt(dat); head(longData)