[R] Strange behavior of atan2

Peter Dalgaard p.dalgaard at biostat.ku.dk
Thu Apr 14 14:15:39 CEST 2005


Clément Calenge <calenge at biomserv.univ-lyon1.fr> writes:

> Dear all,
> 
> I've got a problem with the function atan2. For a couple of
> coordinates x and y,
> This function returns the angle between the vector of coordinates (x,
> y) and the
> abscissa axis, i.e. it is the same as atan(y/x) (as indicated on the
> help page).
> If we consider the vector with coordinates x = 0 and  y = 0, we have
> the following result:
> 
>  > atan(0/0)
> [1] NaN
> 
> This is expected. However:
> 
>  > atan2(0,0)
> [1] 0
> 
> Instead of a missing value, the function atan2 returns an angle equal
> to 0 radians.
> I've searched through the help pages, the FAQ and the forum, but I
> did'nt find
> any explanation to this result. Does anyone know if this behavior is
> expected, and
> why ?
> Thank you for any clues.

Yes, it is expected. R just copies what the C library function does,
but there is actually a rationale:

http://www-sbras.nsc.ru/cgi-bin/www/unix_help/unix-man?atan2+3

Briefly: You don't get a natural conversion to spherical coordinates
and back without this convention.

-- 
   O__  ---- Peter Dalgaard             Blegdamsvej 3  
  c/ /'_ --- Dept. of Biostatistics     2200 Cph. N   
 (*) \(*) -- University of Copenhagen   Denmark      Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)             FAX: (+45) 35327907




More information about the R-help mailing list