Sergio Ivan Roman Ponce
2011-Jun-09 15:03 UTC
[R-es] Merge con matrices diferentes dimensiones (ALCANZE)
Jorge y Carlos Los errores me está saliendo por que una matriz no tenía nombre de columnas. Por favor hagan caso omiso a mi correo anterior. En estos momentos estoy trabajando, en la generación de las nuevas matrices. En cuanto tenga los resultados se los hago saber.. De antemano muchas gracias,>Sergio From: Jorge Ivan Velez [mailto:jorgeivanvelez@gmail.com] Sent: jueves, 09 de junio de 2011 04:15 p.m. To: Carlos Ortega Cc: Sergio Ivan Roman Ponce; r-help-es@r-project.org Subject: Re: [R-es] Merge con matrices diferentes dimensiones Buenos dias Carlos, Creo que en este caso, es mejor utilizar %in% en vez de ==. Observa lo siguiente:> m2n <- m2[sample(nrow(m2)),]> m2nx Y row9 1 9 row2 1 2 row11 1 11 row7 1 7 row19 1 19 row15 1 15 row12 1 12 row4 1 4 row3 1 3 row17 1 17 row1 1 1 row5 1 5 row18 1 18 row16 1 16 row10 1 10 row14 1 14 row6 1 6 row8 1 8 row13 1 13 row20 1 20> m2n[rownames(m2n) == rownames(m3),]x Y row18 1 18 row20 1 20> m2n[rownames(m2n) %in% rownames(m3),]x Y row19 1 19 row17 1 17 row18 1 18 row16 1 16 row20 1 20 En el ejemplo que envias (por cierto, muchas gracias!), las cosas funcionan bien porque los nombres de las filas en ambas matrices estan ordenadas. Un saludo, Jorge 2011/6/9 Carlos Ortega <> Hola Sergio, Mira si este ejemplo reproduce lo que estás buscando. m2 <- cbind(1,1:20) colnames(m2, do.NULL = FALSE) colnames(m2) <- c("x","Y") rownames(m2) <- rownames(m2, do.NULL = FALSE) m2> m2 x Yrow1 1 1 row2 1 2 row3 1 3 row4 1 4 row5 1 5 row6 1 6 row7 1 7 row8 1 8 row9 1 9 row10 1 10 row11 1 11 row12 1 12 row13 1 13 row14 1 14 row15 1 15 row16 1 16 row17 1 17 row18 1 18 row19 1 19 row20 1 20 m3<-cbind(1,1:5) colnames(m3, do.NULL = FALSE) colnames(m3) <- c("x","Y") rownames(m3) <- c(paste("row",16:20, sep="")) m3> m3 x Yrow16 1 1 row17 1 2 row18 1 3 row19 1 4 row20 1 5> m2[rownames(m2)==rownames(m3),] x Yrow16 1 16 row17 1 17 row18 1 18 row19 1 19 row20 1 20 Saludos, Carlos Ortega www.qualityexcellence.es 2011/6/9 Sergio Ivan Roman Ponce <>> Estimado Carlos, > > > > En la primera pregunta: > > Agregue los nombres de las columnas y filas de la siguiente manera: > > > > rownames(Ag) <- paste(1:4998) > > colnames(Ag) <- paste(1:4998) > > > > Tengo dos matrices: > > Ag es una matrix (4998X4998). Los nombres de las columnas y filas son el > numero de cada una de ellas [1:4998] > > ID es una matrix (1089X1089). Los nombres de las columnas y filas son > numero comprendidos entre [1858:4998]. > > > > Como es evidente el rango de valores es 3140, pero ID solo tiene 1089 > observaciones. > > > > El numero de la primera columna de ID es 1858 y la informacion corresponde > a la columnna 1858 de la matriz Ag. Y asi sucesivamente, hasta llegar a la > ultima columna/fila de ID con nombre 4998 con la columna 4998 de Ag. > > > > Mi ultima prueba la realice con merge. > > > > TEST<- merge(ID, Ag, by = "row.names", all.x=FALSE) > > > > Saludos y gracias de antemano.. > > * * > > * * > > *> * > > *Sergio Ivan Roman Ponce* > > *From:* Carlos Ortega [mailto: > *Sent:* jueves, 09 de junio de 2011 12:21 p.m. > *To:* Sergio Ivan Roman Ponce > *Cc:* r-help-es@r-project.org > *Subject:* Re: [R-es] Merge con matrices diferentes dimensiones > > > > Hola, > > > > Para la primera parte, mira el detalle del help de R sobre: > > > > rownames > > colnames > > > > Y sobre la segunda pregunta creo que falta que lo expliques un poco mejor. > > En el mientras tanto mira si subset.matrix te puede ayudar. > > > > > > Saludos, > > Carlos Ortega > > www.qualityexcellence.es > > > > > > > > 2011/6/9 Sergio Ivan Roman Ponce <> > > Hola a todos, > > > > Soy relativamente nuevo usando R. > > > > Actualmente estoy haciendo mis primeros intentos con R. > > > > Necesito un poco de ayuda en algo que podría parecer muy sencillo, pero > para > mí me está costando mucho trabajo. > > Primera pregunta: > > > > Tengo una matriz ye necesito poner el número de Columba y de fila como > nombre de la variable sin ninguna letra? > > Solo del 1 al n. > > > > > > Segunda pregunta: > > Tengo dos matrices cuadradas: > > La primera con dimensión 4 X 4 > > Matriz A: > > A11 1 0 0 0 A12 > > 0 1 0 0 > > A21 0 0 1 0 A22 > > 0 0 0 1 > > > > La primera con dimensión 2 X 2 > > Matriz B: > > 1 0 > > 0 1 > > > > Necesito extraer los valores de la Matriz A de los elementos de B. > > > > El problema es que B no es un bloque de A, (ningún bloque como A11, A12, > A21 > o A22). Las filas y columnas no son continuas unas con otras, están entre > mezcladas. > > > > Los nombres de las filas y columnas de la MATRIZ B son números que deben > corresponden al número de columna de la MATRIX A. > > > > SUGERENCIAS? > > > > > > > Sergio > > > > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > <mailto:R-help-es@r-project.org> R-help-es@r-project.org > <https://stat.ethz.ch/mailman/listinfo/r-help-es>https://stat.ethz.ch/mailman/listinfo/r-help-es> > >[[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list <mailto:R-help-es@r-project.org> R-help-es@r-project.org <https://stat.ethz.ch/mailman/listinfo/r-help-es> https://stat.ethz.ch/mailman/listinfo/r-help-es [[alternative HTML version deleted]]