Skip to content
Prev 13244 / 15379 Next

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

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
## aqui va  a mano
NData <- Data[c(2,3,1),c(2,3,1)]NData
## aqui usando un vector
SP <- paste('specie', c(2,3,1))VData <- Data[SP,SP]VData
 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 en 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 en gmail.com>) escribió:
    [[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