These functions update a `rounding_specification`

object (see
round_spec) so that a particular approach to rounding is applied:

round to a dynamic decimal place based on magnitude of the rounded number (

`round_using_magnitude()`

)round to a specific number of significant digits (

`round_using_signif()`

)round to a specific decimal place (

`round_using_decimal()`

)

round_using_magnitude(rspec, digits = c(2, 1, 0), breaks = c(1, 10, Inf)) round_using_signif(rspec, digits = 2) round_using_decimal(rspec, digits = 1)

rspec | a |
---|---|

digits | for |

breaks | (only relevant if rounding based on magnitude) a positive, monotonically increasing numeric vector designating rounding boundaries. |

an object of class `rounding_specification`

.

`digits`

and `breaks`

must be used in coordination with each other
when rounding based on magnitude. For example, using
`breaks = c(1, 10, Inf)`

and `decimals = c(2, 1, 0)`

,

numbers whose absolute value is < 1 are rounded to 2 decimal places,

numbers whose absolute value is >= 1 and < 10 are rounding to 1 decimal place, and

numbers whose absolute value is >= 10 are rounding to 0 decimal places. The use of magnitude to guide rounding rules is extremely flexible and can be used for many different applications (e.g., see table_pvalue). Rounding by magnitude is similar in some ways to rounding to a set number of significant digits but not entirely the same (see examples).

Other rounding helpers:
`round_half_up()`

x <- c(pi, exp(1)) x <- c(x, x*10, x*100, x*1000) # make one specification using each rounding approach specs <- list( magnitude = round_using_magnitude(round_spec()), decimal = round_using_decimal(round_spec()), signif = round_using_signif(round_spec()) ) # apply all three rounding specifications to x # notice how the rounding specifications are in agreement # for smaller values of x but their answers are different # for larger values of x. sapply(specs, function(rspec) table_value(x, rspec))#> magnitude decimal signif #> [1,] "3.1" "3.1" "3.1" #> [2,] "2.7" "2.7" "2.7" #> [3,] "31" "31.4" "31.0" #> [4,] "27" "27.2" "27.0" #> [5,] "314" "314.2" "310.0" #> [6,] "272" "271.8" "270.0" #> [7,] "3,142" "3,141.6" "3,100.0" #> [8,] "2,718" "2,718.3" "2,700.0"# output: # magnitude decimal signif # [1,] "3.1" "3.1" "3.1" # [2,] "2.7" "2.7" "2.7" # [3,] "31" "31.4" "31.0" # [4,] "27" "27.2" "27.0" # [5,] "314" "314.2" "310.0" # [6,] "272" "271.8" "270.0" # [7,] "3,142" "3,141.6" "3,100.0" # [8,] "2,718" "2,718.3" "2,700.0"