Nothing
test_that("remove_all_na_cols() works correctly", {
# Test with data frame with no NA columns
df_no_na <- data.frame(
x = 1:5,
y = 6:10,
z = 11:15
)
result_no_na <- remove_all_na_cols(df_no_na)
expect_equal(result_no_na, df_no_na)
expect_equal(ncol(result_no_na), 3)
# Test with data frame with some NA columns
df_with_na <- data.frame(
x = 1:5,
y = rep(NA, 5), # All NA column
z = 11:15,
w = rep(NA, 5) # Another all NA column
)
result_with_na <- remove_all_na_cols(df_with_na)
expect_equal(ncol(result_with_na), 2)
expect_named(result_with_na, c("x", "z"))
expect_equal(result_with_na$x, 1:5)
expect_equal(result_with_na$z, 11:15)
# Test with data frame with partial NA columns
df_partial_na <- data.frame(
x = c(1, 2, NA, 4, 5), # Partial NA
y = rep(NA, 5), # All NA
z = c(11, NA, 13, 14, 15) # Partial NA
)
result_partial_na <- remove_all_na_cols(df_partial_na)
expect_equal(ncol(result_partial_na), 2)
expect_named(result_partial_na, c("x", "z"))
# Test with empty data frame
df_empty <- data.frame()
result_empty <- remove_all_na_cols(df_empty)
expect_equal(result_empty, df_empty)
# Test with single column all NA
df_single_na <- data.frame(x = rep(NA, 3))
result_single_na <- remove_all_na_cols(df_single_na)
expect_equal(ncol(result_single_na), 0)
# Test with single column no NA
df_single_no_na <- data.frame(x = 1:3)
result_single_no_na <- remove_all_na_cols(df_single_no_na)
expect_equal(result_single_no_na, df_single_no_na)
})
test_that("remove_all_na_cols() preserves data types", {
# Test with different data types
df_mixed <- data.frame(
numeric_col = c(1.5, 2.5, 3.5),
integer_col = 1:3,
character_col = c("a", "b", "c"),
factor_col = factor(c("x", "y", "z")),
logical_col = c(TRUE, FALSE, TRUE),
all_na_col = rep(NA, 3)
)
result_mixed <- remove_all_na_cols(df_mixed)
# Should remove only the all_na_col
expect_equal(ncol(result_mixed), 5)
expect_false("all_na_col" %in% names(result_mixed))
# Check data types are preserved
expect_type(result_mixed$numeric_col, "double")
expect_type(result_mixed$integer_col, "integer")
expect_type(result_mixed$character_col, "character")
expect_s3_class(result_mixed$factor_col, "factor")
expect_type(result_mixed$logical_col, "logical")
})
test_that("remove_all_na_cols() handles different NA types", {
# Test with different types of NA
df_na_types <- data.frame(
numeric_na = c(1, 2, NA_real_),
integer_na = c(1L, 2L, NA_integer_),
character_na = c("a", "b", NA_character_),
all_numeric_na = rep(NA_real_, 3),
all_integer_na = rep(NA_integer_, 3),
all_character_na = rep(NA_character_, 3)
)
result_na_types <- remove_all_na_cols(df_na_types)
# Should keep columns with partial NAs, remove columns with all NAs
expect_equal(ncol(result_na_types), 3)
expect_named(result_na_types, c("numeric_na", "integer_na", "character_na"))
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.