d <- iris[1:4, ] # standardize ----------------------------------------------------- test_that("standardize.data.frame", { x <- standardise(d, select = c("Sepal.Length", "Sepal.Width")) expect_equal(as.vector(x$Sepal.Length), as.vector(scale(d$Sepal.Length)), tolerance = 0.001) expect_equal(as.vector(x$Petal.Length), as.vector(d$Petal.Length), tolerance = 0.001) expect_equal(colnames(x), c("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width", "Species")) x <- standardise(d, select = c("Sepal.Length", "Sepal.Width"), append = TRUE) expect_equal(as.vector(x$Sepal.Length_z), as.vector(scale(d$Sepal.Length)), tolerance = 0.001) expect_equal(as.vector(x$Sepal.Length), as.vector(d$Sepal.Length), tolerance = 0.001) expect_equal(as.vector(x$Petal.Length), as.vector(d$Petal.Length), tolerance = 0.001) expect_equal( colnames(x), c( "Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width", "Species", "Sepal.Length_z", "Sepal.Width_z" ) ) }) test_that("standardize other classes", { d <- data.frame( a = 1:5, b = factor(letters[1:5]), c = as.Date(c("2022-03-22", "2022-01-02", "2022-02-02", "2021-04-02", "2020-01-19")), d = c(TRUE, TRUE, FALSE, FALSE, TRUE), e = as.complex(1:5) ) x <- standardize(d$a) expect_equal( as.numeric(x), c(-1.26491, -0.63246, 0, 0.63246, 1.26491), tolerance = 1e-3, ignore_attr = TRUE ) x <- standardize(d$b) expect_equal(as.numeric(x), 1:5, tolerance = 1e-3, ignore_attr = TRUE) x <- standardize(d$b, force = TRUE) expect_equal( as.numeric(x), c(-1.26491, -0.63246, 0, 0.63246, 1.26491), tolerance = 1e-3, ignore_attr = TRUE ) x <- standardize(d$c) expect_equal(x, as.Date( c( "2022-03-22", "2022-01-02", "2022-02-02", "2021-04-02", "2020-01-19" ) ), tolerance = 1e-3, ignore_attr = TRUE) x <- standardize(d$c, force = TRUE) expect_equal(as.numeric(x), c(0.76992, 0.53121, 0.62488, -0.29975, -1.62626), tolerance = 1e-3, ignore_attr = TRUE) x <- standardize(d$d) expect_equal(x, c(TRUE, TRUE, FALSE, FALSE, TRUE), tolerance = 1e-3, ignore_attr = TRUE) expect_message(x <- standardize(d$d, force = TRUE)) expect_equal( x, c(0.7303, 0.7303, -1.09545, -1.09545, 0.7303), tolerance = 1e-3, ignore_attr = TRUE ) ## TODO conflict with standardize.default() in effectsize expect_warning( x <- standardize(d$e), "cannot be standardized" ) expect_equal(x, d$e, tolerance = 1e-3, ignore_attr = TRUE) }) # center ----------------------------------------------------- test_that("center.data.frame", { x <- center(d, select = c("Sepal.Length", "Sepal.Width")) expect_equal(as.vector(x$Sepal.Length), as.vector(d$Sepal.Length - mean(d$Sepal.Length)), tolerance = 0.001) expect_equal(as.vector(x$Petal.Length), as.vector(d$Petal.Length), tolerance = 0.001) expect_equal(colnames(x), c("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width", "Species")) x <- center(d, select = c("Sepal.Length", "Sepal.Width"), append = TRUE) expect_equal(as.vector(x$Sepal.Length_c), as.vector(d$Sepal.Length - mean(d$Sepal.Length)), tolerance = 0.001 ) expect_equal(as.vector(x$Sepal.Length), as.vector(d$Sepal.Length), tolerance = 0.001) expect_equal(as.vector(x$Petal.Length), as.vector(d$Petal.Length), tolerance = 0.001) expect_equal( colnames(x), c( "Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width", "Species", "Sepal.Length_c", "Sepal.Width_c" ) ) }) test_that("center other classes", { d <- data.frame( a = 1:5, b = factor(letters[1:5]), c = as.Date(c("2022-03-22", "2022-01-02", "2022-02-02", "2021-04-02", "2020-01-19")), d = c(TRUE, TRUE, FALSE, FALSE, TRUE), e = as.complex(1:5) ) x <- center(d$a) expect_equal(as.numeric(x), c(-2, -1, 0, 1, 2), tolerance = 1e-3, ignore_attr = TRUE) x <- center(d$b) expect_equal(as.numeric(x), 1:5, tolerance = 1e-3, ignore_attr = TRUE) x <- center(d$b, force = TRUE) expect_equal(as.numeric(x), c(-2, -1, 0, 1, 2), tolerance = 1e-3, ignore_attr = TRUE) x <- center(d$c) expect_equal(x, as.Date( c( "2022-03-22", "2022-01-02", "2022-02-02", "2021-04-02", "2020-01-19" ) ), tolerance = 1e-3, ignore_attr = TRUE) x <- center(d$c, force = TRUE) expect_equal(as.numeric(x), c(254.8, 175.8, 206.8, -99.2, -538.2), tolerance = 1e-3, ignore_attr = TRUE) x <- center(d$d) expect_equal(x, c(TRUE, TRUE, FALSE, FALSE, TRUE), tolerance = 1e-3, ignore_attr = TRUE) expect_message(x <- center(d$d, force = TRUE)) expect_equal(x, c(0.4, 0.4, -0.6, -0.6, 0.4), tolerance = 1e-3, ignore_attr = TRUE) expect_message(x <- center(d$e)) expect_equal(x, d$e, tolerance = 1e-3, ignore_attr = TRUE) })