dwww Home | Show directory contents | Find package

context('Test preProcess')

# Helper function
check.medianImpute <- function(x) {
        # Reference column medians for checks
        med <- apply(x, 2, median, na.rm=TRUE)
        anyEmptyColumn <- any(is.na(med))
        med[is.na(med)] <- 0

        if(anyEmptyColumn) {
                expect_warning(
                        pp <- preProcess(x, method = "medianImpute"),
                        "never filled"
                )
        } else {
                pp <- preProcess(x, method = "medianImpute")
        }
        expect_equal(pp$median, med)

        x.filled <- predict(pp, newdata=x)
        expect_false(any(is.na(x.filled)))
        expect_equal(x[!is.na(x)], x.filled[!is.na(x)])

        med.filled <- apply(x.filled, 2, median)
        expect_equal(med.filled, med)
}

# Tested data matrix
set.seed(1)
x <- matrix(rnorm(20, mean=10,sd=5), nrow=4)
x[2,1] <- x[3,4] <- x[2,5] <- x[4,5] <- NA
x[,3] <- NA

colnames(x) <- paste0("Var.",1:ncol(x))

test_that("median Impute works for matrix with named columns", {
        check.medianImpute(x)
})

test_that("median Impute works for data.frames", {
        check.medianImpute(as.data.frame(x, stringsAsFactors = TRUE))
})

test_that("correlation filter", {
  expect_equal(
    preProcess(iris, "corr")$method,
    list(ignore = "Species", remove = "Petal.Length")
  )
})


Generated by dwww version 1.15 on Tue Jul 2 08:55:12 CEST 2024.