Parece que funciona y va rapido. Solo una duda, es posible poner que en las variables fila y columna ponga los nomrbes que estaban en la matriz? Siguiendo tu codigo, he probado poniendole a M2 los row.names de M: row.names(M2) <- row.names (M) pero no sirve. Si hago row.names (M2) me aparecen los nuevos nombres, pero luego tanto en la visualizacion como en el paso de M3 se ponen los nombres consecutivos. Sabeis alguna manera para poder poner los nombres originales? Muchas gracias ! > Date: Thu, 11 Feb 2016 15:08:01 +0100 > From: [email protected] > To: [email protected] > CC: [email protected]; [email protected] > Subject: Re: [R-es] Invertir dcast > > Con data.table todo puede ir muy rapido. > > require(data.table) > > M=matrix(c(5,NA,NA,NA,6,NA,7,NA,8),3,3) > > M > [,1] [,2] [,3] > [1,] 5 NA 7 > [2,] NA 6 NA > [3,] NA NA 8 > > M2=data.table(M) > > M2 > V1 V2 V3 > 1: 5 NA 7 > 2: NA 6 NA > 3: NA NA 8 > > M3=melt(M2,variable.name = "columna") > > M3 > columna value > 1: V1 5 > 2: V1 NA > 3: V1 NA > 4: V2 NA > 5: V2 6 > 6: V2 NA > 7: V3 7 > 8: V3 NA > 9: V3 8 > > M3[,.(fila=which(!is.na(value)),value=na.omit(value)),by=columna] > columna fila value > 1: V1 1 5 > 2: V2 2 6 > 3: V3 1 7 > 4: V3 3 8 > > > > Un saludo. Olivier > > ----- Mensaje original ----- > De: "Javier Marcuzzi" <[email protected]> > Para: "Ruben Bermad" <[email protected]>, [email protected] > Enviados: Jueves, 11 de Febrero 2016 12:45:02 > Asunto: Re: [R-es] Invertir dcast > > Estimado Ruben Bernard > > ¿Usted desea algo como sparce matrix? > > Javier Rubén Marcuzzi > > De: Ruben Bermad > Enviado: jueves, 11 de febrero de 2016 9:40 > Para: [email protected] > Asunto: [R-es] Invertir dcast > > Hola a todos, > Queria preguntaros si conoceis alguna manera para invertir la funcion dcast. > Quiero transformar una matriz en un data frame de tres columnas que indiquen > solo los casos donde la combinacion fila-columna sea diferente de NA. > Se me habia ocurrido hacer un bucle que fuera seleccionando todos los valores > para cada combinacion de fila y columna, pero el problema es que con una > matriz de 53000x5000 tarda demasiado, y tengo muchos valores NA que no me > sirven de nada. > Alguien sabe como podr�a invertir el dcast sin pasar por todas las > combinaciones. > Muchas gracias por adelantado, Un cordial saludo,Ruben > > > [[alternative HTML version deleted]] > > > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > [email protected] > https://stat.ethz.ch/mailman/listinfo/r-help-es [[alternative HTML version deleted]]
_______________________________________________ R-help-es mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/r-help-es
