Buenas tardes a tod@s, Me gustaria redondear las entradas de una matriz m manteniendo la suma de filas y columnas constantes (son valores fijos conocidos). En la aplicacion que estoy trabajando (en la que por supuesto m tiene una dimension mayor que en el ejemplo), no son permitidos numeros decimales y por ello debe efectuarse el redondeo. La forma de m es: m <- matrix(c(3.546, 4.5345, 1.9195, 12.332, 15.982, 21.686, 4.122, 9.4835, 16.3945), ncol = 3, byrow = TRUE) colnames(m) <- paste0('C', 1:3) rownames(m) <- paste0('X', 1:3) m # C1 C2 C3 # X1 3.546 4.5345 1.9195 # X2 12.332 15.9820 21.6860 # X3 4.122 9.4835 16.3945 Los totales (por filas y columna, todos fijos) son los siguientes (TotalColumna <- colSums(m)) (TotalFila <- rowSums(m)) Si procedo haciendo m2 <- round(m, 0) m2 es claro que los totales fila y columna no se mantienen colSums(m2) # columna rowSums(m2) # fila Alguna idea de como efectuar el redondeo? Muchisimas gracias de antemano. Saludos, Jorge Velez [[alternative HTML version deleted]]
Esto lo hice yo en una práctica en la universidad, Definíamos un problema de optimización entera minimizando el error de redondeo y restringiendo a la suma de filas y columnas. El 23 de agosto de 2013 19:05, Jorge I Velez <jorgeivanvelez@gmail.com>escribió:> Buenas tardes a tod@s, > > Me gustaria redondear las entradas de una matriz m manteniendo la suma de > filas y columnas constantes (son valores fijos conocidos). En la > aplicacion que estoy trabajando (en la que por supuesto m tiene una > dimension mayor que en el ejemplo), no son permitidos numeros decimales y > por ello debe efectuarse el redondeo. > > La forma de m es: > > m <- matrix(c(3.546, 4.5345, 1.9195, > 12.332, 15.982, 21.686, > 4.122, 9.4835, 16.3945), ncol = 3, byrow = TRUE) > colnames(m) <- paste0('C', 1:3) > rownames(m) <- paste0('X', 1:3) > m > # C1 C2 C3 > # X1 3.546 4.5345 1.9195 > # X2 12.332 15.9820 21.6860 > # X3 4.122 9.4835 16.3945 > > Los totales (por filas y columna, todos fijos) son los siguientes > > (TotalColumna <- colSums(m)) > (TotalFila <- rowSums(m)) > > Si procedo haciendo > > m2 <- round(m, 0) > m2 > > es claro que los totales fila y columna no se mantienen > > colSums(m2) # columna > rowSums(m2) # fila > > Alguna idea de como efectuar el redondeo? Muchisimas gracias de antemano. > > Saludos, > Jorge Velez > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Jorge Ayuso Rejas [[alternative HTML version deleted]]
Gracias, Jorge. Y cual fue la solucion a la que llegaron? --JIV Sent from my phone. Please excuse my brevity and misspelling. On Aug 25, 2013, at 8:36 AM, Jorge Ayuso Rejas <jayusor@gmail.com> wrote: Esto lo hice yo en una práctica en la universidad, Definíamos un problema de optimización entera minimizando el error de redondeo y restringiendo a la suma de filas y columnas. El 23 de agosto de 2013 19:05, Jorge I Velez <jorgeivanvelez@gmail.com>escribió:> Buenas tardes a tod@s, > > Me gustaria redondear las entradas de una matriz m manteniendo la suma de > filas y columnas constantes (son valores fijos conocidos). En la > aplicacion que estoy trabajando (en la que por supuesto m tiene una > dimension mayor que en el ejemplo), no son permitidos numeros decimales y > por ello debe efectuarse el redondeo. > > La forma de m es: > > m <- matrix(c(3.546, 4.5345, 1.9195, > 12.332, 15.982, 21.686, > 4.122, 9.4835, 16.3945), ncol = 3, byrow = TRUE) > colnames(m) <- paste0('C', 1:3) > rownames(m) <- paste0('X', 1:3) > m > # C1 C2 C3 > # X1 3.546 4.5345 1.9195 > # X2 12.332 15.9820 21.6860 > # X3 4.122 9.4835 16.3945 > > Los totales (por filas y columna, todos fijos) son los siguientes > > (TotalColumna <- colSums(m)) > (TotalFila <- rowSums(m)) > > Si procedo haciendo > > m2 <- round(m, 0) > m2 > > es claro que los totales fila y columna no se mantienen > > colSums(m2) # columna > rowSums(m2) # fila > > Alguna idea de como efectuar el redondeo? Muchisimas gracias de antemano. > > Saludos, > Jorge Velez > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Jorge Ayuso Rejas [[alternative HTML version deleted]]