context("split column type")
data("diamonds", package = "ggplot2")
test_that("test data.table return object", {
dt <- data.table(diamonds)
dt_output <- split_columns(dt)
expect_equal(
names(dt_output)[order(names(dt_output))],
c("continuous", "discrete", "num_all_missing", "num_continuous", "num_discrete")
)
expect_is(dt_output$discrete, "data.table")
expect_is(dt_output$continuous, "data.table")
expect_equal(
sum(dt_output$num_discrete, dt_output$num_continuous, dt_output$num_all_missing),
ncol(dt)
)
})
test_that("test data.frame return object", {
df <- data.frame(diamonds)
df_output <- split_columns(df)
expect_equal(
names(df_output)[order(names(df_output))],
c("continuous", "discrete", "num_all_missing", "num_continuous", "num_discrete")
)
expect_is(df_output$discrete, "data.frame")
expect_is(df_output$continuous, "data.frame")
expect_equal(
sum(df_output$num_discrete, df_output$num_continuous, df_output$num_all_missing),
ncol(df)
)
})
test_that("test data.frame with all missing columns", {
df <- data.frame(
"a" = letters,
"b" = rnorm(26L),
"c" = rep(NA_character_, 26L),
"d" = rnorm(26L),
"e" = rep(NA_integer_, 26L),
"f" = LETTERS,
"g" = rep(NA, 26L)
)
df_output <- split_columns(df)
expect_equal(names(df_output$discrete), c("a", "f"))
expect_equal(names(df_output$continuous), c("b", "d"))
expect_equal(df_output$num_discrete, 2L)
expect_equal(df_output$num_continuous, 2L)
expect_equal(df_output$num_all_missing, 3L)
expect_equal(sum(df_output$num_discrete, df_output$num_continuous, df_output$num_all_missing), ncol(df))
})
test_that("test binary categories", {
df <- data.frame(
"a" = sample.int(n = 2L, size = 26L, replace = TRUE),
"b" = rep(c(-1L, 1L), each = 13L),
"c" = LETTERS,
"d" = as.factor(rep(c(-1L, 1L), each = 13L)),
"e" = letters,
"f" = rnorm(26L),
"g" = c(NA, rep(1:2, 12L), NA),
"h" = rep(c(1L, NA), each = 13L)
)
df_output_false <- split_columns(df)
df_output_true <- split_columns(df, binary_as_factor = TRUE)
expect_equal(df_output_false$num_discrete, 3L)
expect_equal(df_output_false$num_continuous, 5L)
expect_equal(df_output_false$num_all_missing, 0L)
expect_setequal(names(df_output_false$discrete), c("c", "d", "e"))
expect_setequal(names(df_output_false$continuous), c("a", "b", "f", "g", "h"))
expect_equal(df_output_true$num_discrete, 7L)
expect_equal(df_output_true$num_continuous, 1L)
expect_equal(df_output_true$num_all_missing, 0L)
expect_setequal(names(df_output_true$discrete), c("a", "b", "c", "d", "e", "g", "h"))
expect_setequal(names(df_output_true$continuous), "f")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.