Skip to contents

This function will round all numeric columns in a data frame or matrix to the specified number of decimal places.

Usage

round_df(data, digits = 2)

Arguments

data

A data frame or matrix.

digits

An integer of the number of decimal places.

Value

data.frame or matrix

Examples

#----------------------------------------------------------------------------
# round_df() examples.
#----------------------------------------------------------------------------
library(bkmisc)

d_int <- data.frame(
var1 = 1:3,
var2 = 4:6,
var3 = 6:8
)
d_num <- data.frame(
var1 = c(1.0001, 2, 3),
var2 = c(4, 5, 6.1234567),
var3 = c(4, 5, 6)
)
d_mix <- bkdat::as_df(
list(
  POSIXct = as.POSIXct(c("2017-08-13", "2017-08-14")),
  POSIXlt = as.POSIXlt(c("2017-08-13", "2017-08-14")),
  Date = as.Date(c("2017-08-13", "2017-08-14")),
  numeric = c(1.399, 2.599),
  integer = 3:4,
  character = letters[1:2],
  missing = rep(c(1, NA)),
  infinte = rep(c(2, Inf)),
  logical = rep(c(TRUE, FALSE)),
  factor = factor(letters[1:2]),
  list = replicate(2, list(a=data.frame(b = c(1.33, 2))))
)
)
lapply(round_df(data = d_int, digits = 1), class)
#> $var1
#> [1] "integer"
#> 
#> $var2
#> [1] "integer"
#> 
#> $var3
#> [1] "integer"
#> 
lapply(round_df(data = d_num, digits = 1), class)
#> $var1
#> [1] "numeric"
#> 
#> $var2
#> [1] "numeric"
#> 
#> $var3
#> [1] "numeric"
#> 
lapply(round_df(data = d_mix, digits = 1), class)
#> $POSIXct
#> [1] "POSIXct" "POSIXt" 
#> 
#> $POSIXlt
#> [1] "POSIXlt" "POSIXt" 
#> 
#> $Date
#> [1] "Date"
#> 
#> $numeric
#> [1] "numeric"
#> 
#> $integer
#> [1] "integer"
#> 
#> $character
#> [1] "character"
#> 
#> $missing
#> [1] "numeric"
#> 
#> $infinte
#> [1] "numeric"
#> 
#> $logical
#> [1] "logical"
#> 
#> $factor
#> [1] "factor"
#> 
#> $list
#> [1] "list"
#>