Re: [R-es] Invertir dcast

2016-02-12 Por tema Ruben Bermad
Muchisimas gracias a todos los que os habeis interesado por mi problema. 
Vuestras soluciones me han servido de gran ayuda y funcionan perfectamente.  

Subject: Re: [R-es] Invertir dcast
From: luisf...@yahoo.com
Date: Thu, 11 Feb 2016 18:41:33 +0100
CC: ruben...@hotmail.com; r-help-es@r-project.org
To: c...@qualityexcellence.es

Buenas,
Como siempre me gusta ver formas distintas de hacer la misma cosa y, a ser 
posible, más eficientes.Si he entendido bien, otra forma que veo de hacer lo 
mismo es la siguiente: usando aritmética modular, la matriz M se puede ver como 
un vector de columnas concatenadas:
M <- matrix(c(5,NA,NA,NA,6,NA,7,NA,8),3,3)
linear.indices <- which(!is.na(M)) - 1M3 <- cbind(columna=linear.indices %/% 
nrow(M) + 1  , fila=linear.indices %% nrow(M) + 1  , 
valor=M[linear.indices+1])
En caso de que la matriz M sea grande, creo (y corregidme si me equivoco), que 
esta solución es más rápida y más eficiente en memoria. Además de que no hay 
que importar ninguna librería extra.En cuanto a poner el mismo nombre, se puede 
usar colnames(M) e indexarlo con la primera columna de M3.
Un saludo,Luisfo
El 11 feb 2016, a las 17:30, Carlos Ortega  
escribió:​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 
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: onu...@unex.es
To: javier.ruben.marcu...@gmail.com
CC: ruben...@hotmail.com; r-help-es@r-project.org
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   NA7
[2,]   NA6   NA
[3,]   NA   NA8
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:  V1NA
3:  V1NA
4:  V2NA
5:  V2 6
6:  V2NA
7:  V3 7
8:  V3NA
9:  V3 8
M3[,.(fila=which(!is.na(value)),value=na.omit(value)),by=columna]
   columna fila value
1:  V11 5
2:  V22 6
3:  V31 7
4:  V33 8


Un saludo. Olivier

- Mensaje original -
De: "Javier Marcuzzi" 
Para: "Ruben Bermad" , r-help-es@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@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@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es




-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es
  
[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es

[R-es] Ayuda. Análisis de Parsimonia de Endemismos

2016-02-12 Por tema ANTONIO ZAMORA LOPEZ
Hola a todos,

estoy buscando información sobre cómo realizar un Análisis de Parsimonia
de Endemismos (PAE) con R. Tras recopilar información al respecto, no he
conseguido averiguar la librería ni los pasos a seguir para realizarlo.

Si alguno de ustedes ha llevado a cabo este análisis, le agradecería
mucho que me aportase información al respecto.

Gracias de antemano. Saludos!

Antonio Zamora 

[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es