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]]
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 2
Muchas 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 2
Muchas 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