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" <javier.ruben.marcuzzi en gmail.com>
Para: "Ruben Bermad" <ruben_bm en hotmail.com>, r-help-es en
r-project.org
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: r-help-es en r-project.org
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
R-help-es en r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es