| RoundTo {DescTools} | R Documentation |
Round to Multiple
Description
Returns a number rounded to the nearest specified multiple.
Usage
RoundTo(x, multiple = 1, FUN = round)
Arguments
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 |
Details
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).
Value
the rounded value
Author(s)
Andri Signorell <andri@signorell.net>
See Also
Examples
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)
)