# Augmenting dat.age with fake data to check scenarios S1 and S3 set.seed(1234) n <- nrow(dat.age) min.g1 <- runif(n, min = 25, max = min(dat.age$q1.g1, na.rm = TRUE)) min.g2 <- runif(n, min = 25, max = min(dat.age$q1.g2, na.rm = TRUE)) max.g1 <- runif(n, min = max(dat.age$q3.g1, na.rm = TRUE), max = 100) max.g2 <- runif(n, min = max(dat.age$q3.g2, na.rm = TRUE), max = 100) dat.age_S1 <- dat.age_S3 <- dat.age dat.age_S1[, c('q1.g1', 'q3.g1', 'q1.g2', 'q3.g2')] <- NA dat.age_S1[, c('min.g1', 'max.g1', 'min.g2', 'max.g2')] <- dat.age_S3[, c('min.g1', 'max.g1', 'min.g2', 'max.g2')] <- cbind(min.g1, max.g1, min.g2, max.g2) # Checking all approaches with the naive SE estimator mean_methods <- c('hozo/wan/bland', 'luo', 'shi_lognormal', 'qe', 'bc', 'mln', 'yang') sd_methods <- c('wan', 'wan/shi_normal', 'shi_lognormal', 'qe', 'bc', 'mln', 'yang') for (mean_method in mean_methods){ for (sd_method in sd_methods){ test_that(paste0(mean_method, " mean method with the naive SE estimator (with ", sd_method, " standard deviation method) in scenario S1 works"), { expect_no_error(metamean(dat.age_S1, mean_method = mean_method, se_method = 'naive', sd_method = sd_method)) }) test_that(paste0(mean_method, " mean method with the naive SE estimator (with ", sd_method, " standard deviation method) in scenario S2 works"), { expect_no_error(metamean(dat.age, mean_method = mean_method, se_method = 'naive', sd_method = sd_method)) }) test_that(paste0(mean_method, " mean method with the naive SE estimator (with ", sd_method, " standard deviation method) in scenario S3 works"), { expect_no_error(metamean(dat.age_S3, mean_method = mean_method, se_method = 'naive', sd_method = sd_method)) }) } } # Checking all approaches with the bootstrap SE estimator set.seed(1234) mean_methods_boot <- c('qe', 'bc', 'mln') for (mean_method in mean_methods_boot){ test_that(paste0(mean_method, " mean method with the bootstrap SE estimator in scenario S1 works"), { expect_no_error(metamean(dat.age_S1, mean_method = mean_method, se_method = 'bootstrap', nboot = 10)) }) test_that(paste0(mean_method, " mean method with the bootstrap SE estimator in scenario S2 works"), { expect_no_error(metamean(dat.age, mean_method = mean_method, se_method = 'bootstrap', nboot = 10)) }) test_that(paste0(mean_method, " mean method with the bootstrap SE estimator in scenario S3 works"), { expect_no_error(metamean(dat.age_S3, mean_method = mean_method, se_method = 'bootstrap', nboot = 10)) }) } # Checking the approach with the plugin SE estimator test_that("yang mean method with the plug-in SE estimator in scenario S1 works", { expect_no_error(metamean(dat.age_S1, mean_method = 'yang', se_method = 'plugin')) }) test_that("yang mean method with the plug-in SE estimator in scenario S2 works", { expect_no_error(metamean(dat.age, mean_method = 'yang', se_method = 'plugin')) }) test_that("yang mean method with the plug-in SE estimator in scenario S3 works", { expect_no_error(metamean(dat.age_S3, mean_method = 'yang', se_method = 'plugin')) })