library(data.table)
dummydata <- data.table(
agegroup = c(
'15 to 17',
'18 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'
),
actualpopulation = rpois(11, 1000),
standardpopulation = rep(10000, 11),
cases = c(rpois(11, 20))
)
dummydata |> knitr::kable()
# Non-standardised rate
dummydata[, 100000 * sum(cases) / sum(actualpopulation)]
# Calculate age-specific rates
dummydata[, rate := cases / actualpopulation]
# Calculate expected cases in standard population
dummydata[, expectedcases := rate * standardpopulation]
# Calculate DSR per 100k
dummydata[, 100000 * sum(expectedcases) / sum(standardpopulation)]
dummydata |> knitr::kable()