Hace poco me ha pasado una cosa curiosa y soy incapaz de arreglara. Utilizando la función solve A <- matrix(c(1, 1, 1, 1, 1, 4, 5, 6, 7, 8, 0, 0, 0, 1,-1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 ), nrow=5,byrow=T ) b <- c(40+1, 208, 0, 2, 14) # Jugar con los dos utlimos parametros hasta encontrar la solución x <- solve(A,b)> x[1] 14 16 7 2 2Pero> x[1] == 14[1] FALSE> x[1][1] 14Pueden replicar este resultado. ¿Por qué ocurre esto? ¿Es porque es un objeto s3? He intentado solucionarlo con x <- as.integer(x) Pero tampoco. La verdad que esto me tiene un poco mosqueado. Gracias por adealantado. [[alternative HTML version deleted]]
Hola Javier, Sí, me pasa lo mismo. Esto es debido a que los componentes del vector x[1] no se están almacenando de la misma forma. Pero son iguales, lo puedes comprobar con la función all.equal() #############################> A <- matrix(c(1, 1, 1, 1, 1,+ 4, 5, 6, 7, 8, + 0, 0, 0, 1,-1, + 0, 0, 0, 0, 1, + 1, 0, 0, 0, 0 + ), nrow=5,byrow=T )> b <- c(40+1, 208, 0, 2, 14) > # Jugar con los dos utlimos parametros hasta encontrar la solución > x <- solve(A,b) > > x[1] == 14[1] FALSE> > all.equal(x[1], 14)[1] TRUE> all.equal(14, x[1])[1] TRUE> identical(x[1], 14)[1] FALSE> isTRUE(all.equal(x[1], 14))[1] TRUE ############################# Este comportamiento extraño ya es conocido, mira este ejemplo en la ayuda de "==":> x1 <- 0.5 - 0.3 > x2 <- 0.3 - 0.1 > x1 == x2 # FALSE on most machines[1] FALSE> identical(all.equal(x1, x2), TRUE) # TRUE everywhere[1] TRUE Saludos, Carlos Ortega www.qualityexcellence.es El 9 de noviembre de 2012 15:51, Javier Villacampa González < javier.villacampa.gonzalez@gmail.com> escribió:> Hace poco me ha pasado una cosa curiosa y soy incapaz de arreglara. > Utilizando la función solve > A <- matrix(c(1, 1, 1, 1, 1, > 4, 5, 6, 7, 8, > 0, 0, 0, 1,-1, > 0, 0, 0, 0, 1, > 1, 0, 0, 0, 0 > ), nrow=5,byrow=T ) > b <- c(40+1, 208, 0, 2, 14) # Jugar con los dos utlimos parametros hasta > encontrar la solución > x <- solve(A,b) > > > x[1] 14 16 7 2 2 > > > Pero > > > x[1] == 14[1] FALSE> x[1][1] 14 > > Pueden replicar este resultado. ¿Por qué ocurre esto? ¿Es porque es un > objeto s3? > > He intentado solucionarlo con > x <- as.integer(x) > Pero tampoco. > La verdad que esto me tiene un poco mosqueado. > > Gracias por adealantado. > > [[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]]
Hola Javier. No sé si estoy entendiendo bien. ¿Sucede que el objeto x es algo no esperado? Yo he corrido tu código y no me sucede lo que creo entender. Este ha sido mi resultado: A <- matrix(c(1, 1, 1, 1, 1, 4, 5, 6, 7, 8, 0, 0, 0, 1,-1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 ), nrow=5,byrow=T ) b <- c(40+1, 208, 0, 2, 14) x <- solve(A,b)> A <- matrix(c(1, 1, 1, 1, 1,+ 4, 5, 6, 7, 8, + 0, 0, 0, 1,-1, + 0, 0, 0, 0, 1, + 1, 0, 0, 0, 0 + ), nrow=5,byrow=T )> b <- c(40+1, 208, 0, 2, 14) > x <- solve(A,b) > x[1] 14 16 7 2 2> class(x)[1] "numeric" ¿Será tu sistema operativo, tu versión de R, ambas, quizá? Salud. 2012/11/9 Javier Villacampa González <javier.villacampa.gonzalez@gmail.com>> Hace poco me ha pasado una cosa curiosa y soy incapaz de arreglara. > Utilizando la función solve > A <- matrix(c(1, 1, 1, 1, 1, > 4, 5, 6, 7, 8, > 0, 0, 0, 1,-1, > 0, 0, 0, 0, 1, > 1, 0, 0, 0, 0 > ), nrow=5,byrow=T ) > b <- c(40+1, 208, 0, 2, 14) # Jugar con los dos utlimos parametros hasta > encontrar la solución > x <- solve(A,b) > > > x[1] 14 16 7 2 2 > > > Pero > > > x[1] == 14[1] FALSE> x[1][1] 14 > > Pueden replicar este resultado. ¿Por qué ocurre esto? ¿Es porque es un > objeto s3? > > He intentado solucionarlo con > x <- as.integer(x) > Pero tampoco. > La verdad que esto me tiene un poco mosqueado. > > Gracias por adealantado. > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >-- «But Gwindor answered: ''The doom lies in yourself, not in your name.''» JRR Tolkien [[alternative HTML version deleted]]
Oh. Entiendo mejor. Si hago la prueba de igualdad del primer componente que nos muestras y hace Carlos, tampoco tengo FALSE como resultado:> x[1]==14[1] TRUE Aunque creo que esto no ayuda mucho :-\ Salud. 2012/11/9 Carlos Ortega <cof@qualityexcellence.es>> Hola Javier, > > Sí, me pasa lo mismo. > > Esto es debido a que los componentes del vector x[1] no se están > almacenando de la misma forma. > Pero son iguales, lo puedes comprobar con la función all.equal() > > ############################# > > A <- matrix(c(1, 1, 1, 1, 1, > + 4, 5, 6, 7, 8, > + 0, 0, 0, 1,-1, > + 0, 0, 0, 0, 1, > + 1, 0, 0, 0, 0 > + ), nrow=5,byrow=T ) > > b <- c(40+1, 208, 0, 2, 14) > > # Jugar con los dos utlimos parametros hasta encontrar la solución > > x <- solve(A,b) > > > > x[1] == 14 > [1] FALSE > > > > all.equal(x[1], 14) > [1] TRUE > > all.equal(14, x[1]) > [1] TRUE > > identical(x[1], 14) > [1] FALSE > > isTRUE(all.equal(x[1], 14)) > [1] TRUE > > ############################# > > Este comportamiento extraño ya es conocido, mira este ejemplo en la ayuda > de "==": > > > x1 <- 0.5 - 0.3 > > x2 <- 0.3 - 0.1 > > x1 == x2 # FALSE on most machines > [1] FALSE > > identical(all.equal(x1, x2), TRUE) # TRUE everywhere > [1] TRUE > > Saludos, > Carlos Ortega > www.qualityexcellence.es > > > El 9 de noviembre de 2012 15:51, Javier Villacampa González < > javier.villacampa.gonzalez@gmail.com> escribió: > > > Hace poco me ha pasado una cosa curiosa y soy incapaz de arreglara. > > Utilizando la función solve > > A <- matrix(c(1, 1, 1, 1, 1, > > 4, 5, 6, 7, 8, > > 0, 0, 0, 1,-1, > > 0, 0, 0, 0, 1, > > 1, 0, 0, 0, 0 > > ), nrow=5,byrow=T ) > > b <- c(40+1, 208, 0, 2, 14) # Jugar con los dos utlimos parametros hasta > > encontrar la solución > > x <- solve(A,b) > > > > > x[1] 14 16 7 2 2 > > > > > > Pero > > > > > x[1] == 14[1] FALSE> x[1][1] 14 > > > > Pueden replicar este resultado. ¿Por qué ocurre esto? ¿Es porque es un > > objeto s3? > > > > He intentado solucionarlo con > > x <- as.integer(x) > > Pero tampoco. > > La verdad que esto me tiene un poco mosqueado. > > > > Gracias por adealantado. > > > > [[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 > >-- «But Gwindor answered: ''The doom lies in yourself, not in your name.''» JRR Tolkien [[alternative HTML version deleted]]
Hola Javier, En Rstudio no pasa> A <- matrix(c(1, 1, 1, 1, 1,+ 4, 5, 6, 7, 8, + 0, 0, 0, 1,-1, + 0, 0, 0, 0, 1, + 1, 0, 0, 0, 0 + ), nrow=5,byrow=T )> A[,1] [,2] [,3] [,4] [,5] [1,] 1 1 1 1 1 [2,] 4 5 6 7 8 [3,] 0 0 0 1 -1 [4,] 0 0 0 0 1 [5,] 1 0 0 0 0> b <- c(40+1, 208, 0, 2, 14) # Jugar con los dos utlimos parametros hasta > b[1] 41 208 0 2 14> x <- solve(A,b) > x[1] 14 16 7 2 2> x[1][1] 14> x[1]==14[1] TRUE Sin embargo, en R2.15.1 si> A <- matrix(c(1, 1, 1, 1, 1,+ 4, 5, 6, 7, 8, + 0, 0, 0, 1,-1, + 0, 0, 0, 0, 1, + 1, 0, 0, 0, 0 + ), nrow=5,byrow=T )> b <- c(40+1, 208, 0, 2, 14) # Jugar con los dos utlimos parametros hastaencontrar la solución> x <- solve(A,b) > x[1] 14 16 7 2 2> x[1]==14[1] FALSE>Algo curioso Un saludo El 9 de noviembre de 2012 15:51, Javier Villacampa González < javier.villacampa.gonzalez@gmail.com> escribió:> Hace poco me ha pasado una cosa curiosa y soy incapaz de arreglara. > Utilizando la función solve > A <- matrix(c(1, 1, 1, 1, 1, > 4, 5, 6, 7, 8, > 0, 0, 0, 1,-1, > 0, 0, 0, 0, 1, > 1, 0, 0, 0, 0 > ), nrow=5,byrow=T ) > b <- c(40+1, 208, 0, 2, 14) # Jugar con los dos utlimos parametros hasta > encontrar la solución > x <- solve(A,b) > > > x[1] 14 16 7 2 2 > > > Pero > > > x[1] == 14[1] FALSE> x[1][1] 14 > > Pueden replicar este resultado. ¿Por qué ocurre esto? ¿Es porque es un > objeto s3? > > He intentado solucionarlo con > x <- as.integer(x) > Pero tampoco. > La verdad que esto me tiene un poco mosqueado. > > Gracias por adealantado. > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >-- Jose Luis [[alternative HTML version deleted]]
Pues yo empleo windows7 RStudio y al final del mail teneis los parametros. Ahora me surje otra pregunta. Personalmente me gustaría utilizar los valores de este vector como parametros en una fucnión de tipo rep("hola mundo", x[1]). Por ultimo me gustaría notar que si hago esto el número de repeticiones se corresponde con los valores de la función as.integer. Vean, vean.> x[1] 14 16 7 2 2> as.integer(x)[1] 13 16 6 2 2Muchas gracias a todos por la ayuda.> sessionInfo()R version 2.15.1 (2012-06-22)Platform: i386-pc-mingw32/i386 (32-bit) locale: [1] LC_COLLATE=Spanish_Spain.1252 LC_CTYPE=Spanish_Spain.1252 LC_MONETARY=Spanish_Spain.1252 LC_NUMERIC=C [5] LC_TIME=Spanish_Spain.1252 attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] lme4_0.999999-0 Matrix_1.0-6 lattice_0.20-6 loaded via a namespace (and not attached): [1] grid_2.15.1 languageR_1.4 MuMIn_1.7.11 nlme_3.1-104 stats4_2.15.1 tools_2.15.1 [[alternative HTML version deleted]]
Hola, yo lo probé pero en mi computadora el siguiente código anda. A <- matrix(c(1, 1, 1, 1, 1, 4, 5, 6, 7, 8, 0, 0, 0, 1,-1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 ), nrow=5,byrow=T ) A b <- c(40+1, 208, 0, 2, 14) # Jugar con los dos utlimos parametros hasta b x <- solve(A,b) x[1] RStudio 0.97.168> version_ platform x86_64-w64-mingw32 arch x86_64 os mingw32 system x86_64, mingw32 status major 2 minor 15.2 year 2012 month 10 day 26 svn rev 61015 language R version.string R version 2.15.2 (2012-10-26) nickname Trick or Treat -----Mensaje original----- From: Javier Villacampa González Sent: Friday, November 09, 2012 3:41 PM To: r-help-es en r-project.org Subject: [R-es] help: Función solve Pues yo empleo windows7 RStudio y al final del mail teneis los parametros. Ahora me surje otra pregunta. Personalmente me gustaría utilizar los valores de este vector como parametros en una fucnión de tipo rep("hola mundo", x[1]). Por ultimo me gustaría notar que si hago esto el número de repeticiones se corresponde con los valores de la función as.integer. Vean, vean.> x[1] 14 16 7 2 2> as.integer(x)[1] 13 16 6 2 2Muchas gracias a todos por la ayuda.> sessionInfo()R version 2.15.1 (2012-06-22)Platform: i386-pc-mingw32/i386 (32-bit) locale: [1] LC_COLLATE=Spanish_Spain.1252 LC_CTYPE=Spanish_Spain.1252 LC_MONETARY=Spanish_Spain.1252 LC_NUMERIC=C [5] LC_TIME=Spanish_Spain.1252 attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] lme4_0.999999-0 Matrix_1.0-6 lattice_0.20-6 loaded via a namespace (and not attached): [1] grid_2.15.1 languageR_1.4 MuMIn_1.7.11 nlme_3.1-104 stats4_2.15.1 tools_2.15.1 [[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