Hola, Sí, es que con los data.tables tienes que cambiar los nombres con la función "setnames()" y "M2" es un data.table.
Saludos, Carlos Ortega www.qualityexcellence.es El 11 de febrero de 2016, 17:26, Ruben Bermad <[email protected]> escribió: > > 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 > -- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/r-help-es
