[R] round to specific intervals
    Michael Kao 
    mkao006rmail at gmail.com
       
    Thu Dec  1 17:33:01 CET 2011
    
    
  
Thanks for all the response,
I manage to write a small function to complete what I want based on the 
wonderful helps.
iround <- function(x, interval){
     ## Round numbers to desired interval
     ##
     ## Args:
     ##   x:        Numeric vector to be rounded
     ##   interval: The interval the values should be rounded towards.
     ## Retunrs:
     ##   a numeric vector with x rounded to the desired interval.
     ##
     interval[ifelse(x < min(interval), 1, findInterval(x, interval))]
}
iround(0:100, c(1, 5, 10, 20, 50))
Cheers, and thanks for all the help again.
On 1/12/2011 5:20 p.m., Duncan Murdoch wrote:
> On 01/12/2011 10:55 AM, Michael Kao wrote:
>> Dear R users/helpers,
>>
>> I am wondering is there an existing function in which you can round
>> numbers to a set of values. I know you can use 5 * round(x/5) for
>> rounding to the nearest 5 or so, but what if the interval size is not
>> constant.
>>
>> For example:
>> ## Not run
>> test<- rnorm(100)
>> round(test, c(1, 5, 10, 20, 50))
>>
>> so that the test is rounded to the closest value in the vector.
>
>
> I think you could put together such a thing using cut().
>
> Duncan Murdoch
    
    
More information about the R-help
mailing list