test_that("directlyStandardiseRates initial check", { # example from original dsr package # An example of calculating directly standardized rates # Data from Table 1, Page 132 of Schoenbach (2000) # State specific death counts and fu df_study <- data.frame(state=rep(c('Miami',"Alaska"), c(5,5)), age=rep(c('00-14','15-24','25-44','45-64','65+'),2), deaths=c(136,57,208,1016,3605,59,18,37,90,81), fu=c(114350,80259,133440,142670,92168,37164,20036,32693,14947,2077)) # US standard population df_ref <- data.frame(age=c('00-14','15-24','25-44','45-64','65+'), pop=c(23961000,15420000,21353000,19601000,10685000)) # Directly Standardized Rates (per 100000) expect_no_error(my_results <- directlyStandardiseRates(data=df_study, event="deaths", denominator="fu", strata="state", age = "age", refdata=df_ref)) }) test_that("using package populations", { # european stud_result <- data.frame( age_group = c( "0 to 4","5 to 9","10 to 14", "15 to 19","20 to 24","25 to 29", "30 to 34","35 to 39","40 to 44", "45 to 49","50 to 54","55 to 59", "60 to 64","65 to 69","70 to 74", "75 to 79","80 to 84","85 to 89", "90 to 150" ), deaths= rep(5, 19), denominator = rep(100, 19)) expect_no_error(directlyStandardiseRates(data = stud_result, event = "deaths", denominator = "denominator", refdata = standardPopulation("Europe"))) }) test_that("using strata", { stud_result <- data.frame( var_1 = c(rep("a", 19), rep("b", 19)), age_group = rep(c( "0 to 4","5 to 9","10 to 14", "15 to 19","20 to 24","25 to 29", "30 to 34","35 to 39","40 to 44", "45 to 49","50 to 54","55 to 59", "60 to 64","65 to 69","70 to 74", "75 to 79","80 to 84","85 to 89", "90 to 150" ),2), deaths= c(rep(50, 190),rep(100, 190)), denominator = rep(1000, 380)) expect_no_error(directlyStandardiseRates(data = stud_result, event = "deaths", denominator = "denominator", strata = "var_1", refdata = standardPopulation("Europe"))) }) test_that("using multiple strata", { stud_result <- data.frame( var_1 = c(rep("a", 19), rep("b", 19)), var_2 = rep(c("c","d"), 19), age_group = rep(c( "0 to 4","5 to 9","10 to 14", "15 to 19","20 to 24","25 to 29", "30 to 34","35 to 39","40 to 44", "45 to 49","50 to 54","55 to 59", "60 to 64","65 to 69","70 to 74", "75 to 79","80 to 84","85 to 89", "90 to 150" ),2), deaths= c(rep(50, 190),rep(100, 190)), denominator = rep(1000, 380)) expect_no_error(directlyStandardiseRates(data = stud_result, event = "deaths", denominator = "denominator", strata = c("var_1", "var_2"), refdata = standardPopulation("Europe"))) }) test_that("refdata is dataframe", { stud_result <- data.frame( age_group = c( "0 to 4","5 to 9","10 to 14", "15 to 19","20 to 24","25 to 29", "30 to 34","35 to 39","40 to 44", "45 to 49","50 to 54","55 to 59", "60 to 64","65 to 69","70 to 74", "75 to 79","80 to 84","85 to 89", "90 to 150" ), deaths= rep(5, 19), denominator = rep(100, 19)) refdata = c( "0 to 4", "5 to 9", "10 to 14", "15 to 19","20 to 24","25 to 29", "30 to 34","35 to 39","40 to 44", "45 to 49","50 to 54","55 to 59", "60 to 64","65 to 69","70 to 74", "75 to 79","80 to 84","85 to 89", "90 to 150" ) expect_error(directlyStandardiseRates(data = stud_result, event = "deaths", denominator = "denominator", refdata = refdata)) }) test_that("data is dataframe", { stud_result <- c( "0 to 4","5 to 9","10 to 14", "15 to 19","20 to 24","25 to 29", "30 to 34","35 to 39","40 to 44", "45 to 49","50 to 54","55 to 59", "60 to 64","65 to 69","70 to 74", "75 to 79","80 to 84","85 to 89", "90 to 150" ) expect_error(directlyStandardiseRates(data = stud_result, event = "deaths", denominator = "denominator")) }) test_that("event is column in data", { stud_result <- data.frame( age_group = c( "0 to 4","5 to 9","10 to 14", "15 to 19","20 to 24","25 to 29", "30 to 34","35 to 39","40 to 44", "45 to 49","50 to 54","55 to 59", "60 to 64","65 to 69","70 to 74", "75 to 79","80 to 84","85 to 89", "90 to 150" ), deaths= rep(5, 19), denominator = rep(100, 19)) expect_error(directlyStandardiseRates(data = stud_result, event = "death_count", denominator = "denominator")) }) test_that("denominator is column in data", { stud_result <- data.frame( age_group = c( "0 to 4","5 to 9","10 to 14", "15 to 19","20 to 24","25 to 29", "30 to 34","35 to 39","40 to 44", "45 to 49","50 to 54","55 to 59", "60 to 64","65 to 69","70 to 74", "75 to 79","80 to 84","85 to 89", "90 to 150" ), deaths= rep(5, 19), denominator = rep(100, 19)) expect_error(directlyStandardiseRates(data = stud_result, event = "deaths", denominator = "denominator (months)")) }) test_that("strata is column in data", { stud_result <- data.frame( age_group = c( "0 to 4","5 to 9","10 to 14", "15 to 19","20 to 24","25 to 29", "30 to 34","35 to 39","40 to 44", "45 to 49","50 to 54","55 to 59", "60 to 64","65 to 69","70 to 74", "75 to 79","80 to 84","85 to 89", "90 to 150" ), deaths= rep(5, 19), denominator = rep(100, 19)) expect_error(directlyStandardiseRates(data = stud_result, event = "deaths", denominator = "denominator", strata = "sex")) }) test_that("strata is column in data", { stud_result <- data.frame( age_group = c( "0 to 4","5 to 9","10 to 14", "15 to 19","20 to 24","25 to 29", "30 to 34","35 to 39","40 to 44", "45 to 49","50 to 54","55 to 59", "60 to 64","65 to 69","70 to 74", "75 to 79","80 to 84","85 to 89", "90 to 150" ), deaths= rep(5, 19), denominator = rep(100, 19)) expect_error(directlyStandardiseRates(data = stud_result, event = "deaths", denominator = "denominator", strata = "sex")) }) test_that("pop is column in data", { stud_result <- data.frame( age_group = c( "0 to 4","5 to 9","10 to 14", "15 to 19","20 to 24","25 to 29", "30 to 34","35 to 39","40 to 44", "45 to 49","50 to 54","55 to 59", "60 to 64","65 to 69","70 to 74", "75 to 79","80 to 84","85 to 89", "90 to 150" ), deaths= rep(5, 19), denominator = rep(100, 19)) expect_error(directlyStandardiseRates(data = stud_result, event = "deaths", denominator = "denominator", pop = "population")) }) test_that("age is a column in data and refdata", { stud_result <- data.frame( age_groups = c( "0 to 4","5 to 9","10 to 14", "15 to 19","20 to 24","25 to 29", "30 to 34","35 to 39","40 to 44", "45 to 49","50 to 54","55 to 59", "60 to 64","65 to 69","70 to 74", "75 to 79","80 to 84","85 to 89", "90 to 150" ), deaths= rep(5, 19), denominator = rep(100, 19)) expect_error(directlyStandardiseRates(data = stud_result, event = "deaths", denominator = "denominator", age = "age_group")) df_study <- data.frame(state=rep(c('Miami',"Alaska"), c(5,5)), age=rep(c('00-14','15-24','25-44','45-64','65+'),2), deaths=c(136,57,208,1016,3605,59,18,37,90,81), fu=c(114350,80259,133440,142670,92168,37164,20036,32693,14947,2077)) # US standard population df_ref <- data.frame(ages=c('00-14','15-24','25-44','45-64','65+'), pop=c(23961000,15420000,21353000,19601000,10685000)) expect_error(directlyStandardiseRates(data = df_study, event = "deaths", denominator = "fu", refdata = df_ref, age = "age")) }) test_that("low outcome counts get warnings (2)",{ df_study <- data.frame(state=rep(c('Miami',"Alaska"), c(5,5)), age=rep(c('00-14','15-24','25-44','45-64','65+'),2), deaths=c(1,1,2,1,0,0,1,3,0,0), fu=c(114350,80259,133440,142670,92168,37164,20036,32693,14947,2077)) df_ref <- data.frame(age=c('00-14','15-24','25-44','45-64','65+'), pop=c(23961000,15420000,21353000,19601000,10685000)) expect_warning(directlyStandardiseRates(data = df_study, event = "deaths", denominator = "fu", refdata = df_ref, age = "age")) }) test_that("missing age groups are included", { df_study <- data.frame(state=rep(c('Miami',"Alaska"), c(5,5)), age=rep(c('00-14','15-24','25-44','45-64','65+'),2), deaths=c(150,126,277,111,96,52,148,399,65,33), fu=c(114350,80259,133440,142670,92168,37164,20036,32693,14947,2077)) df_ref <- data.frame(age=c('15-24','25-44','45-64','65+'), pop=c(15420000,21353000,19601000,10685000)) expect_no_error( dsr <- directlyStandardiseRates( data = df_study, event = "deaths", denominator = "fu", refdata = df_ref, age = "age" )) }) test_that("add missing age groups FALSE", { df_study <- data.frame(state=rep(c('Miami',"Alaska"), c(4,4)), age=rep(c('15-24','25-44','45-64','65+'),2), deaths=c(126,277,111,96,148,399,65,33), fu=c(80259,133440,142670,92168,20036,32693,14947,2077)) df_ref <- data.frame(age=c('00-14','15-24','25-44','45-64','65+'), pop=c(1683400, 15420000,21353000,19601000,10685000)) expect_no_error( dsr <- directlyStandardiseRates( data = df_study, event = "deaths", denominator = "fu", refdata = df_ref, age = "age", addMissingGroups = FALSE )) }) test_that("add missing age groups TRUE", { df_study <- data.frame(state=rep(c('Miami',"Alaska"), c(4,4)), age=rep(c('15-24','25-44','45-64','65+'),2), deaths=c(126,277,111,96,148,399,65,33), fu=c(80259,133440,142670,92168,20036,32693,14947,2077)) df_ref <- data.frame(age=c('00-14','15-24','25-44','45-64','65+'), pop=c(1683400, 15420000,21353000,19601000,10685000)) expect_no_error( dsr <- directlyStandardiseRates( data = df_study, event = "deaths", denominator = "fu", refdata = df_ref, age = "age", addMissingGroups = FALSE )) }) test_that("Different age groups used in both datasets", { df_study <- data.frame(state=rep(c('Miami',"Alaska"), c(4,4)), age=rep(c('0-24','25-44','45-64','65+'),2), deaths=c(126,277,111,96,148,399,65,33), fu=c(80259,133440,142670,92168,20036,32693,14947,2077)) df_ref <- data.frame(age=c('0-25','26-37','38-48','49-67','68+'), pop=c(1683400, 15420000,21353000,19601000,10685000)) expect_error( dsr <- directlyStandardiseRates( data = df_study, event = "deaths", denominator = "fu", refdata = df_ref, age = "age", addMissingGroups = FALSE )) })