Nothing
test_that("impute() handles non-numeric input", {
expect_error(impute(c("a", "b", "c")), "`x` must be a numeric vector.")
})
test_that("impute() defaults focus and method correctly", {
x <- c(10, 20, 30, 10000, 2000, NA)
expect_message(impute(x, focus = c("skew", "missing")), "`focus` is set to 'skew'.")
expect_message(impute(x, focus = "skew", method = c("winsorize", "iqr")))
expect_message(impute(x, focus = "missing", method = c("mean", "median")))
})
test_that("impute() validates method for skew focus", {
x <- c(10, 20, 30, 10000, 2000, NA)
expect_error(
impute(x, focus = "skew", method = "mean"))
})
test_that("impute() validates percentile for winsorization", {
x <- c(10, 20, 30, 10000, 2000, NA)
expect_error(impute(x, focus = "skew", method = "winsorize", percentile = -0.1))
expect_no_error(impute(x, focus = "skew", method = "winsorize", percentile = 0.1))
})
test_that("impute() correctly winsorizes with default percentiles", {
x <- c(10, 20, 30, 10000, 2000, NA)
result <- impute(x, focus = "skew", method = "winsorize")
expect_equal(result, c(10.4, 20.0, 30.0, 9680.0, 2000.0, NA)) # Default 1% and 99%
})
test_that("impute() correctly winsorizes with custom percentiles", {
x <- c(10, 20, 30, 10000, 2000, NA)
result <- impute(x, focus = "skew", method = "winsorize", percentile = 0.05)
expect_equal(result, c(8400.0, 12.0, 12.0, 12.0, 12.0, NA)) # Custom 5% and 95%
})
test_that("impute() handles IQR for extreme values", {
x <- c(10, 20, 30, 10000, 2000, NA)
result <- impute(x, focus = "skew", method = "iqr")
expect_equal(result, c(10, 20, 30, 4970, 2000, NA)) # IQR-based limits
})
test_that("impute() imputes missing values with mean", {
x <- c(10, 20, 30, 10000, 2000, NA)
result <- impute(x, focus = "missing", method = "mean")
expect_equal(result, c(10, 20, 30, 10000, 2000, 2412)) # Mean = 2412
})
test_that("impute() imputes missing values with median", {
x <- c(10, 20, 30, 10000, 2000, NA)
result <- impute(x, focus = "missing", method = "median")
expect_equal(result, c(10, 20, 30, 10000, 2000, 30)) # Median = 30
})
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.