rounding-uncommon {scrutiny} | R Documentation |
Uncommon rounding procedures
Description
Always round up, down, toward zero, or away from it:
-
round_ceiling()
always rounds up. -
round_floor()
always rounds down. -
round_trunc()
always rounds toward zero. -
round_anti_trunc()
always rounds away from zero. (0
itself is rounded to1
.) -
anti_trunc()
does not round but otherwise works likeround_anti_trunc()
.
Despite not being widely used, they are featured here in case they are needed for reconstruction.
Usage
round_ceiling(x, digits = 0L)
round_floor(x, digits = 0L)
round_trunc(x, digits = 0L)
anti_trunc(x)
round_anti_trunc(x, digits = 0L)
Arguments
x |
Numeric. The decimal number to round. |
digits |
Integer. Number of digits to round |
Details
round_ceiling()
, round_floor()
, and round_trunc()
generalize
the base R functions ceiling()
, floor()
, and trunc()
, and
include them as special cases: With the default value for digits
, 0,
these round_*
functions are equivalent to their respective base
counterparts.
The last round_*
function, round_anti_trunc()
, generalizes another
function presented here: anti_trunc()
works like trunc()
except it
moves away from 0, rather than towards it. That is, whereas trunc()
minimizes the absolute value of x
(as compared to the other rounding
functions), anti_trunc()
maximizes it. anti_trunc(x)
is therefore equal
to trunc(x)
+ 1
if x
is positive, and to trunc(x) - 1
if x
is
negative.
round_anti_trunc()
, then, generalizes anti_trunc()
just as
round_ceiling()
generalizes ceiling()
, etc.
Moreover, round_trunc()
is equivalent to round_floor()
for positive
numbers and to round_ceiling()
for negative numbers. The reverse is again
true for round_anti_trunc()
: It is equivalent to round_ceiling()
for
positive numbers and to round_floor()
for negative numbers.
Value
Numeric. x
rounded to digits
(except for anti_trunc()
, which
has no digits
argument).
See Also
round_up()
and round_down()
round up or down from 5,
respectively. round_up_from()
and round_down_from()
allow users to
specify custom thresholds for rounding up or down.
Examples
# Always round up:
round_ceiling(x = 4.52, digits = 1) # 2 cut off
# Always round down:
round_floor(x = 4.67, digits = 1) # 7 cut off
# Always round toward 0:
round_trunc(8.439, digits = 2) # 9 cut off
round_trunc(-8.439, digits = 2) # 9 cut off
# Always round away from 0:
round_anti_trunc(x = 8.421, digits = 2) # 1 cut off
round_anti_trunc(x = -8.421, digits = 2) # 1 cut off