[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