On Tue, 22 Feb 2005 10:10:58 -0800, "Dongseok Choi" <[EMAIL PROTECTED]> wrote :
>Hello, > > I found that round() does not behave as I expected. > Have you had similar experience as following? > >> x<-seq(0.5,10.5,by=1) >> x > [1] 0.5 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5 10.5 >> round(x) > [1] 0 2 2 4 4 6 6 8 8 10 10 >> cbind(x,round(x)) > x > [1,] 0.5 0 > [2,] 1.5 2 > [3,] 2.5 2 > [4,] 3.5 4 > [5,] 4.5 4 > [6,] 5.5 6 > [7,] 6.5 6 > [8,] 7.5 8 > [9,] 8.5 8 >[10,] 9.5 10 >[11,] 10.5 10 > > > Is this a well-known bug? As others have said, it's not a bug at all. If you would like to round up instead, what you should do is use a function like this: > roundup <- function(x) trunc(x+0.5) > x <- -5:5 + 0.5 > x [1] -4.5 -3.5 -2.5 -1.5 -0.5 0.5 1.5 2.5 3.5 4.5 5.5 > round(x) [1] -4 -4 -2 -2 0 0 2 2 4 4 6 > roundup(x) [1] -4 -3 -2 -1 0 1 2 3 4 5 6 If this doesn't handle negatives the way you want, play around a bit with abs(). Duncan Murdoch ______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
