[R-es] Fwd: ¿Qué hace round exactamente?

miguel.angel.rodriguez.muinos en sergas.es miguel.angel.rodriguez.muinos en sergas.es
Vie Dic 11 11:49:33 CET 2009


Hola a tod en s.

Veamos... Intentaré dar mi visión del asunto...

Según reza en la propia ayuda del "round()"....

==================================================================
Note that for rounding off a 5, the IEC 60559 standard is expected
     to be used, '_go to the even digit_'.  Therefore
     'round(0.5)' is '0' and 'round(-1.5)' is '-2'.
     However, this is dependent on OS services and on representation
     error (since e.g. '0.15' is not represented exactly, the
     rounding rule applies to the represented number and not to the
     printed number, and so 'round(0.15, 1)' could be either
     '0.1' or '0.2').
==================================================================

Esto es lo que yo entiendo.....
Si tenemos un número, por ejemplo pongamos el 20,435 ... Realmente R no utiliza "exactamente" ese número porque no puede ser representado "exactamente" como una "fracción simple (binaria)"... Realmente está tomando el 20,43499999... Por lo que el round() lo hace al 20,43 (con precisión de 2 dígitos).

Como leí por ahí... "One always needs to keep in mind that computers do not do arithmetic exactly"

Un saludo,
Miguel.




-----Mensaje original-----
De: r-help-es-bounces en r-project.org [mailto:r-help-es-bounces en r-project.org] En nombre de Pepe Trujillo
Enviado el: viernes, 11 de diciembre de 2009 10:16
Para: Carlos J. Gil Bellosta
CC: r-help-es en r-project.org
Asunto: Re: [R-es] Fwd: ¿Qué hace round exactamente?

Sin embargo, Carlos, he probado con OpenOffice y encuentro:

A1: =REDONDEAR(20.435;2)
A1: 20.44

A2: =REDONDEAR(40.435;2)
A2: 40.44

El sistema operativo es el mismo y los recursos del sistema por tanto también. Estoy seguro que los que hemos probado el ejemplo de Patricia lo hemos hecho en diferentes SO.

 > round( 20.435, 2 )
[1] 20.43
 > round(40.435, 2)
[1] 40.44

Independientemente de que haya una dificultad que viene dada por el sistema de representación interna de los números, es evidente que hay algo que "round" no está haciendo bien y sin embargo un software menos pensado para el cálculo intensivo como OpenOffice ha resuelto. Estoy con Hernán Olivera: "Houston, tenemos un problema".

Saludos.







Nota: A información contida nesta mensaxe e os seus posibles documentos adxuntos é privada e confidencial e está dirixida únicamente ó seu destinatario/a. Se vostede non é o/a destinatario/a orixinal desta mensaxe, por favor elimínea. A distribución ou copia desta mensaxe non está autorizada. 

Nota: La información contenida en este mensaje y sus posibles documentos adjuntos es privada y confidencial y está dirigida únicamente a su destinatario/a. Si usted no es el/la destinatario/a original de este mensaje, por favor elimínelo. La distribución o copia de este mensaje no está autorizada.

See more languages: http://www.sergas.es/aviso_confidencialidad.htm 

XACOBEO 2010: http://www.xacobeo.org



Más información sobre la lista de distribución R-help-es