Round all numeric columns in a dataframe or matrix
round_df.RdThis function will round all numeric columns in a data frame or matrix to the specified number of decimal places.
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"
#>