[R-es] extraño error con seq
Carlos J. Gil Bellosta
cgb en datanalytics.com
Mar Jun 2 18:11:02 CEST 2015
Hola, ¿qué tal?
Para evitar problemas de redondeo, suelo fabricarme los intervalos a
mano cuando son fraccionarios:
2.2 + (0:10) / 100
Un saludo,
Carlos J. Gil Bellosta
http://www.datanalytics.com
El día 2 de junio de 2015, 18:04, Francisco Rodriguez Sanchez
<f.rodriguez.sanc en gmail.com> escribió:
> Estimado Jorge,
>
> Muchas gracias por tu respuesta, me ha sido muy útil.
>
> Al final he evitado el error con este pequeño truco:
>
>>seq(from = round(2.2 + 0.1, digits = 1), to = 2.3, by = 0.1)
> [1] 2.3
>
> Saludos,
>
> Paco
>
>
>
>
> El 01/06/2015 a las 17:56, Jorge I Velez escribió:
>> Francisco,
>> Tiene que ver con aritmetica de punto flotante y como los numeros se
>> representan en R. En la FAQ 7.31 esta explicado.
>> Espero sea de utilidad.
>> Jorge.-
>>
>> On Tuesday, June 2, 2015, Francisco Rodriguez Sanchez
>> <f.rodriguez.sanc en gmail.com <mailto:f.rodriguez.sanc en gmail.com>> wrote:
>>
>> Estimados colisteros,
>>
>> Acabo de encontrar un extraño error usando la función seq:
>>
>> >seq(from = 0.6 + 0.1, to = 0.7, by = 0.1)
>> [1] 0.7
>> # todo bien
>>
>> >seq(from = 2.2 + 0.1, to = 2.3, by = 0.1)
>> Error in seq.default(from = 2.2 + 0.1, to = 2.3, by = 0.1) :
>> wrong sign in 'by' argument
>>
>>
>> La ayuda de seq establece que "Specifying to - from and by of
>> opposite signs is an error". Y en efecto:
>>
>> >2.3 - (2.2 + 0.1)
>> [1] -4.440892e-16
>>
>> arroja un resultado muy pequeño pero negativo, mientras que 'by'
>> es positivo (0.1).
>>
>> He probado con otros muchos números y esto solo me ocurre con el
>> caso de 2.2 y 2.3. Por ejemplo:
>>
>> >0.7 - (0.6 + 0.1)
>> [1] 0
>>
>>
>> A qué se debe esto? O más importante, cómo puedo evitar este error?
>>
>> Muchas gracias de antemano
>>
>> Paco
>>
>> --
>> Dr Francisco Rodriguez-Sanchez
>> Integrative Ecology Group
>> Estacion Biologica de Doñana - CSIC
>> Avda. Americo Vespucio s/n
>> 41092 Sevilla (Spain)
>> http://bit.ly/frod_san
>>
>>
>> [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> R-help-es mailing list
>> R-help-es en r-project.org <javascript:;>
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>>
>>
>> --
>> Sent from my phone. Please excuse my brevity and misspelling.
>
> --
> Dr Francisco Rodriguez-Sanchez
> Integrative Ecology Group
> Estacion Biologica de Doñana - CSIC
> Avda. Americo Vespucio s/n
> 41092 Sevilla (Spain)
> http://bit.ly/frod_san
>
>
> [[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
Más información sobre la lista de distribución R-help-es