[R-es] Reordenar una matriz con caracteres en cada celda

Fernando Arce |ern@nd_@rce @end|ng |rom y@hoo@e@
Vie Mar 15 04:03:03 CET 2019


 Hola Joan:
Te vale simplemente con los indices de lsas filas y columnas de la matrix (cambiandolos al orden que desees). Seria hacerlo a mano como dice Javier. Ahora bien, si hay un motivo por el cual eliges un cierto orden, que lo habra, tienes opciones mas sencillas. sobre todo si tienes muchas especies. Pongo el ejemplo en el que reordenaas basandote en un vector de nombres (que puede estar originado en algun tipo de anlisis previo), y otro utilizando un atributo  ( pongo el ejemplo de ordenarlas de mayor a menor peso medio)
Data <- matrix(c(NA, '3(1-4)', '8(6-9)', '5(2-6)', NA, '5(4-6)',                 '2(1-3)', '10(5-15)', NA), nrow = 3, byrow = TRUE)colnames(Data) <- paste('specie', c(1,2,3))rownames(Data) <- paste('specie', c(1,2,3))Data
>          specie 1 specie 2   specie 3> specie 1 NA       "3(1-4)"   "8(6-9)"> specie 2 "5(2-6)" NA         "5(4-6)"> specie 3 "2(1-3)" "10(5-15)" NA  
## aqui va  a mano
NData <- Data[c(2,3,1),c(2,3,1)]NData
>          specie 2   specie 3 specie 1> specie 2 NA         "5(4-6)" "5(2-6)"> specie 3 "10(5-15)" NA       "2(1-3)"> specie 1 "3(1-4)"   "8(6-9)" NA    
## aqui usando un vector
SP <- paste('specie', c(2,3,1))VData <- Data[SP,SP]VData
>          specie 2   specie 3 specie 1> specie 2 NA         "5(4-6)" "5(2-6)"> specie 3 "10(5-15)" NA       "2(1-3)"> specie 1 "3(1-4)"   "8(6-9)" NA    
 Ahora usando un atributo conocido:
## tenemos en algun lado un archivo con el pesopeso <- data.frame(sp =  paste('specie', c(1,2,3)), peso = c(31,50, 45))n.ord <- order(peso[,2], decreasing = TRUE)
WData <- Data[n.ord,n.ord]WData

 >         specie 2   specie 3 specie 1> specie 2 NA         "5(4-6)" "5(2-6)"> specie 3 "10(5-15)" NA       "2(1-3)"> specie 1 "3(1-4)"   "8(6-9)" NA    

Saludos
Fer
    En miércoles, 13 de marzo de 2019 23:10:57 GMT+11, Javier Marcuzzi <javier.ruben.marcuzzi using gmail.com> escribió:  
 
 Estimado Joan

Especie 1,2,3 tiene un orden, lo que usted desea en la ordenación 2,3,1 no
es claro, en otras palabras, posiblemente debe realizarlo a mano, no se me
ocurre una función para ese caso en particular.

Javier Rubén Marcuzzi

El mar., 12 mar. 2019 a las 15:26, Joan Giménez Verdugo (<
gimenez.verdugo using gmail.com>) escribió:

> Hola,
>
> tengo una matriz de especies donde cada celda tiene datos con caracteres
> (son parentesis). Cómo la puedo reordenar considerando tanto filas como
> columnas?
>
> Ejemplo:
>            ,Specie 1, Specie2, Specie3
> Specie1, NA, 3(1-4), 8(6-9)
> Specie2, 5(2-6),NA, 5(4-6)
> Specie3, 2(1-3), 10(5-15), NA
>
> Quiero:
>
>            ,Specie 2, Specie3, Specie1
> Specie2, NA, 5(4-6) , 5(2-6)
> Specie3, 10(5-15) ,NA,  2(1-3)
> Specie1, 3(1-4), 8(6-9) , NA
>
> Muchas gracias.
>
> Joan
> --
> *Joan Giménez, PhD*
> *Postdoctoral Researcher*
> Institut de Ciències del Mar (ICM-CSIC)
> Passeig Maritim 37-49
> E-08003 Barcelona (Spain).
> www.icm.csic.es
>
> ---
> Personal website: http://gimenezverdugo.wixsite.com/joangimenez
> Research Gate: Joan Giménez
> <https://www.researchgate.net/profile/Joan_Gimenez2>
> Phone: +34 619 176 849
> ü Please consider the environment before printing this E-mail
>
>        [[alternative HTML version deleted]]
>
> _______________________________________________
> R-help-es mailing list
> R-help-es using r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>

    [[alternative HTML version deleted]]

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



Más información sobre la lista de distribución R-help-es