Round to Multiple
Returns a number rounded to the nearest specified multiple.
RoundTo(x, multiple = 1, FUN = round)
x |
numeric. The value to round. |
multiple |
numeric. The multiple to which the number is to be rounded. Default is 1. |
FUN |
the rounding function as character or as expression. Can be one out of |
There are several functions to convert to integers. round
rounds to the nearest integer or to any number of digits. Using a negative number rounds to a power of ten, so that round (x, -3)
rounds to thousands.
Each of trunc
, floor
and ceiling
round in a fixed direction, towards zero, down and up respectively. round
is documented to round to even, so round(2.5)
is 2
.
RoundTo
uses round(x/multiple)*multiple
to get the result. So if x
is equally close to two multiples, the multiple with the smaller absolute value will be returned when round(x/multiple)
is even (and the greater when it's odd).
If FUN
is set to ceiling
it will always round up, and if set to floor
it will always round down. See examples for comparison).
the rounded value
Andri Signorell <andri@signorell.net>
RoundTo(10, 3) # Rounds 10 to a nearest multiple of 3 (9) RoundTo(-10, -3) # Rounds -10 to a nearest multiple of -3 (-9) RoundTo(1.3, 0.2) # Rounds 1.3 to a nearest multiple of 0.2 (1.2) RoundTo(-1.3, 0.2) # Rounds -1.3 to a nearest multiple of 0.2 (-1.2) RoundTo(5, -2) # Returns an error, because -2 and 5 have different signs # Round down RoundTo(c(1,-1) * 1.2335, 0.05, floor) RoundTo(c(1,-1) * 1233.5, 100, floor) # Round up RoundTo(c(1,-1) * 1.2335, 0.05, ceiling) RoundTo(c(1,-1) * 1233.5, 100, ceiling) # Round towards zero RoundTo(c(1,-1) * 1.2335, 0.05, trunc) RoundTo(c(1,-1) * 1233.5, 100, trunc) x <- c(-1.5,-1.3, 1.3, 1.5) cbind(x = x, round = RoundTo(x, 0.2, FUN=round), trunc = RoundTo(x, 0.2, FUN=trunc), ceiling = RoundTo(x, 0.2, FUN=ceiling), floor = RoundTo(x, 0.2, FUN=floor) ) x <- -10:10 cbind(x = x, round = RoundTo(x, 2, FUN=round), trunc = RoundTo(x, 2, FUN=trunc), ceiling = RoundTo(x, 2, FUN=ceiling), floor = RoundTo(x, 2, FUN=floor) )
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.