r.version
install.packages("INLA",repos=c(getOption("repos"),INLA="Index of /R/testing"), dep=TRUE,lib = "D:\Users\86159\R\win-library\4.4\BAPC")
加载所需的R包
library(INLA)
library(BAPC)
library(data.table)
library(tidyselect)
library(dplyr)
library(ggplot2)
library(epitools)
library(reshape2)
创建一个简单的散点图
p <- ggplot(mtcars, aes(x = wt, y = mpg)) +
geom_point()
保存图形,指定合适的尺寸
ggsave(filename = "plot.png", plot = p, width = 8, height = 6, units = "in")
读取疾病数据和人口标准化数据
EC <- read.csv("D:\Users\gbd数据新\global-all ages3.csv")
age_stand <- read.csv("D:\Users\gbd数据新\BAPC文件夹\GBD2019 world population age standard.csv")
使用sub函数将年龄标签转换为统一格式,以便匹配人口学数据和疾病数据
EC <- EC %>%
mutate(age = sub('-', replacement = ' to ', age)) %>%
mutate(age = sub(' years', replacement = '', age)) %>%
mutate(age = sub(' year', replacement = '', age)) %>%
mutate(age = sub('95\+', replacement = '95 plus', age)) %>%
mutate(age = sub('Age to standardized', replacement = 'Age-standardized', age)) %>%
mutate(age = sub('<5', replacement = 'Under 5', age)) %>%
filter(val > 0)
查看处理后的年龄标签
unique(EC$age)
定义疾病真实的年龄结构
ages <- c("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 94", "95 plus")
调取标准人口百分比用
ages_2 <- c("<1 year","1 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 94", "95 plus")
定义预测的年龄结构,纳入模型的年龄结构
ages_3 <- c("55 to 59",
"60 to 64", "65 to 69", "70 to 74", "75 to 79", "80 to 84", "85 to 89",
"90 to 94", "95 plus")
计算标准人口权重
library(dplyr)
wstand <- c(age_stand$std_population[8:16] %>%
as.numeric()) / sum(age_stand$std_population[8:16])
查看计算的标准人口权重
View(wstand)
提取男性食管癌发病数据
提取男性食管癌发病数据
提取男性食管癌发病数据
EC_Male_incidence <- EC %>%
filter(age %in% ages &
sex == 'Male' &
metric == 'Number' &
measure_name == 'DALYs (Disability-Adjusted Life Years)' &
location_name == 'Global')
将男性发病数据转换为宽格式
library(data.table)
EC_Male_incidence_n <- as.data.table(EC_Male_incidence)
EC_Male_incidence_n <- dcast(EC_Male_incidence_n, year ~ age, value.var = "val")
将第一列设置为行名
将第一列设置为行名
将数据框转换为data.table对象
rownames(EC_Male_incidence_n) <- EC_Male_incidence_n$year
EC_Male_incidence_n <- EC_Male_incidence_n[,-1]
EC_Male_incidence_n[,'0 to 4'] <- 0
EC_Male_incidence_n[,'5 to 9'] <- 0
EC_Male_incidence_n <- EC_Male_incidence_n[,c(19:20,1:18)]
EC_Male_incidence_n <- apply(EC_Male_incidence_n, c(1,2), as.integer) %>% as.data.frame()
EC_Male_incidence_n <- apply(EC_Male_incidence_n, c(1,2), round)
提取女性食管癌发病数据
EC_Female_incidence <- EC %>%
filter(age %in% ages &
sex == 'Female' &
metric == 'Number' &
measure_name == 'DALYs (Disability-Adjusted Life Years)' &
location_name == 'Global')
将女性发病数据转换为宽格式
EC_Female_incidence_n <- as.data.table(EC_Female_incidence)
EC_Female_incidence_n <- dcast(EC_Female_incidence_n, year ~ age, value.var = "val")
rownames(EC_Female_incidence_n) <- EC_Female_incidence_n$year
EC_Female_incidence_n <- EC_Female_incidence_n[,-1]
EC_Female_incidence_n[,'0 to 4'] <- 0
EC_Female_incidence_n[,'5 to 9'] <- 0
EC_Female_incidence_n <- EC_Female_incidence_n[,c(19:20,1:18)]
EC_Female_incidence_n <- apply(EC_Female_incidence_n, c(1,2), as.integer) %>% as.data.frame()
EC_Female_incidence_n <- apply(EC_Female_incidence_n, c(1,2), round)
EC_Female_incidence_n <- as.data.frame(EC_Female_incidence_n)
EC_Male_incidence_n <- as.data.frame(EC_Male_incidence_n)
EC_Male_incidence_n <- EC_Male_incidence_n %>%
select(ages_3)
EC_Female_incidence_n <- EC_Female_incidence_n %>%
select(ages_3)
设置行名为1990年至2030年的年份
rownames(EC_Male_incidence_n) <- seq(1990, 2021, by = 1)
设置行名为1990年至2030年的年份
rownames(EC_Female_incidence_n) <- seq(1990, 2021, by = 1)
如果需要,删除原来的第一列(假设是年份列)
请先确认第一列的名称,然后删除该列
例如,如果第一列的名称是"year",则可以这样删除:
EC_Male_incidence_n$year <- NULL
colnames(EC_Male_incidence_n)
设置工作目录并读取人口学数据
setwd("D:\Users\gbd数据新\BAPC文件夹")
dirname <- dir("GBD_Population", full.names = TRUE)
file <- paste0("D:\Users\gbd数据新\BAPC文件夹\GBD_Population\", dirname)
定义需要提取的变量名
var_name <- c( "location_name", "sex_name", "year_id", "age_group_name", "val")
初始化一个空的数据框
GBD_population <- as.data.frame(matrix(nrow = 0, ncol = length(var_name)))
names(GBD_population) <- var_name
逐个读取文件并合并数据
for (a in dirname) {
if (file.exists(a)) {
data <- fread(a) %>%
as.data.frame() %>%
select(var_name) %>%
filter(age_group_name %in% ages_2 )
GBD_population <- rbind(GBD_population, data)
} else {
warning(paste("文件不存在或不可读:", a))
}
}
查看合并后的数据框
head(GBD_population)
对性别标签进行重命名
GBD_population <- GBD_population %>%
mutate(sex_name = case_when(
sex_name == "both" ~ "Both",
sex_name == "male" ~ "Male",
sex_name == "female" ~ "Female"))
GBD_population <- GBD_population[!duplicated(GBD_population), ]
查看处理后的数据框
head(GBD_population)
读取预测人口数据
prediction_var_name <- c("location_name", "sex_name", "year_id", "age_group_name", "val")
GBD_population_prediction <- read.csv("D:\Users\gbd数据新\BAPC文件夹\IHME_POP_2017_2100_POP_REFERENCE_Y2020M05D01.CSV") %>%
as.data.frame() %>%
select(prediction_var_name) %>%
filter(year_id %in% 2020:2030)
GBD <- rbind(GBD_population, GBD_population_prediction)
library(forcats)
GBD_age4 <- GBD %>% subset(age_group_name %in% c("<1 year","1 to 4")) %>%
group_by(location_name, sex_name, year_id) %>%
summarize(val = sum(val))
GBD_age4$age_group_name <- '0 to 4'
GBD_age4 <- GBD_age4[, c(1:3, 5, 4)]
GBD <- subset(GBD, age_group_name %in% ages_3)
GBD <- rbind(GBD, GBD_age4)
GBD <- GBD %>% mutate(age_group_name = fct_relevel(age_group_name, ages_3)) %>%
arrange(age_group_name)
names(GBD)
GBD_Global_Male <- subset(GBD, location_name == 'Global' & sex_name == 'Male')
GBD_Global_Female <- subset(GBD, location_name == 'Global' & sex_name == 'Female')
检查是否有重复值
GBD_Global_Male %>%
group_by(year_id, age_group_name) %>%
summarise(count = n()) %>%
filter(count > 1)
去重
GBD_Global_Male <- GBD_Global_Male %>%
distinct(year_id, age_group_name, .keep_all = TRUE)
检查是否有重复值
GBD_Global_Female %>%
group_by(year_id, age_group_name) %>%
summarise(count = n()) %>%
filter(count > 1)
去重
GBD_Global_Female <- GBD_Global_Female %>%
distinct(year_id, age_group_name, .keep_all = TRUE)
加载 data.table 包
library(data.table)
将数据框转换为 data.table 对象
GBD_Global_Male <- as.data.table(GBD_Global_Male)
GBD_Global_Female <- as.data.table(GBD_Global_Female)
使用 data.table 包的 dcast 函数
GBD_Global_Male_n <- dcast(GBD_Global_Male, year_id ~ age_group_name, value.var = "val")
GBD_Global_Female_n <- dcast(GBD_Global_Female, year_id ~ age_group_name, value.var = "val")
rownames(GBD_Global_Male_n) <- GBD_Global_Male_n$year_id
rownames(GBD_Global_Female_n) <- GBD_Global_Female_n$year_id
GBD_Global_Male_n <- apply(GBD_Global_Male_n, c(1,2), as.numeric) %>% as.data.frame()
GBD_Global_Female_n <- apply(GBD_Global_Female_n, c(1,2), as.numeric) %>% as.data.frame()
GBD_Global_Male_n <- apply(GBD_Global_Male_n, c(1,2), round) %>% as.data.frame()
GBD_Global_Female_n <- apply(GBD_Global_Female_n, c(1,2), round) %>% as.data.frame()
GBD_Global_Female_n <- GBD_Global_Female_n[, -c(1, 11)]
GBD_Global_Male_n <- GBD_Global_Male_n[, -c(1, 11)]
GBD_Global_Both_n <- GBD_Global_Female_n + GBD_Global_Male_n
rownames(GBD_Global_Both_n) <- seq(1990, 2030, by = 1)
rownames(GBD_Global_Female_n) <- seq(1990, 2030, by = 1)
rownames(GBD_Global_Male_n) <- seq(1990, 2030, by = 1)
创建EC_pro数据集用于后续合并
EC_pro <- matrix(data = NA, nrow = 2030 - 2021, ncol = 9) %>%
as.data.frame()
rownames(EC_pro) <- seq(2022, 2030, 1)
colnames(EC_pro) <- names(EC_Male_incidence_n)
合并男性发病数据和EC_pro
EC_Male_incidence_n <- rbind(EC_Male_incidence_n, EC_pro)
合并女性发病数据和EC_pro
EC_Female_incidence_n <- rbind(EC_Female_incidence_n, EC_pro)
library(INLA)
确保数据是数值型
EC_Male_incidence_n <- apply(EC_Male_incidence_n, 2, as.numeric)
GBD_Global_Male_n <- apply(GBD_Global_Male_n, 2, as.numeric)
使用BAPC模型进行预测
install.packages("BAPC",lib = "D:\Users\86159\R\win-library\4.4\BAPC")
EC_Male_incidence_n <- as.data.table(EC_Male_incidence_n)
EC_Female_incidence_n <- as.data.table(EC_Female_incidence_n)
将 EC_Male_incidence_n 转换为数据框
EC_Male_incidence_n_df <- as.data.frame(EC_Male_incidence_n)
GBD_Global_Male_n_df <- as.data.frame(GBD_Global_Male_n)
GBD_Global_Femle_n_df <- as.data.frame(GBD_Global_Female_n)
检查维度
dim(EC_Male_incidence_n) # 应该与 dim(GBD_Global_Male_n) 一致
dim(GBD_Global_Male_n)
检查数据内容
head(EC_Male_incidence_n)
head(GBD_Global_Male_n)
确保 gf 是 numeric
gf <- 5
Male_esoph <- APCList(epi = EC_Male_incidence_n, pyrs = GBD_Global_Male_n, gf = gf)
Male_esoph <- APCList(EC_Male_incidence_n, GBD_Global_Male_n, gf = 5)
Male_bapc_result <- BAPC(Male_esoph, predict = list(npredict = 9, retro = TRUE),
secondDiff = FALSE, stdweight = wstand, verbose = FALSE)
Female_esoph <- APCList(EC_Female_incidence_n, GBD_Global_Female_n, gf = 5)
Female_bapc_result <- BAPC(Female_esoph, predict = list(npredict = 9, retro = TRUE),
secondDiff = FALSE, stdweight = wstand, verbose = FALSE)
dput(EC_Male_incidence_n)
dput(GBD_Global_Male_n)
提取不同年龄段的发病数
Male_proj <- agespec.proj(x = Male_bapc_result) %>% as.data.frame()
Male_proj_mean <- Male_proj[, colnames(Male_proj) %like% 'mean']
names(Male_proj_mean) <- ages_3
Female_proj <- agespec.proj(x = Female_bapc_result) %>% as.data.frame()
Female_proj_mean <- Female_proj[, colnames(Female_proj) %like% 'mean']
names(Female_proj_mean) <- ages_3
Both_proj_mean <- Female_proj_mean + Male_proj_mean
提取不同年龄段的发病率
Male_rate <- agespec.rate(x = Male_bapc_result) %>% as.data.frame()
Male_rate_mean <- Male_rate[, colnames(Male_rate) %like% 'mean'] * 100000
colnames(Male_rate_mean) <- ages_3
Female_rate <- agespec.rate(x = Female_bapc_result) %>% as.data.frame()
Female_rate_mean <- Female_rate[, colnames(Female_rate) %like% 'mean'] * 100000
colnames(Female_rate_mean) <- ages_3
计算总发病率
Both_rate_mean <- Both_proj_mean / GBD_Global_Both_n * 100000
提取标准发病率
Male_ASR <- agestd.rate(x = Male_bapc_result) %>% as.data.frame()
Male_ASR$mean <- Male_ASR$mean * 100000
Male_ASR$year <- rownames(Male_ASR)
Female_ASR <- agestd.rate(x = Female_bapc_result) %>% as.data.frame()
Female_ASR$mean <- Female_ASR$mean * 100000
Female_ASR$year <- rownames(Female_ASR)
计算总发病人数
Male_sum_year <- apply(Male_proj_mean, 1, sum) %>% as.data.frame()
colnames(Male_sum_year) <- 'number'
Male_sum_year$year <- rownames(Male_sum_year)
Female_sum_year <- apply(Female_proj_mean, 1, sum) %>% as.data.frame()
colnames(Female_sum_year) <- 'number'
Female_sum_year$year <- rownames(Female_sum_year)
Both_sum_year <- Male_sum_year + Female_sum_year
Both_sum_year$year <- 1990:2030
绘制BAPC模型结果
plotBAPC(Male_bapc_result, scale = 10^5, type = 'ageStdRate', showdata = TRUE)
绘制不同年龄段发病率组图
plotBAPC(Male_bapc_result, scale = 10^5, type = 'ageSpecRate', showdata = TRUE,
col.fan = terrain.colors)
计算95%置信区间
Male_bapc_result <- qapc(Male_bapc_result, percentiles = c(0.025, 0.975))
Female_bapc_result <- qapc(Female_bapc_result, percentiles = c(0.025, 0.975))
提取标准化发病数及95%置信区间
Male_Aproj <- agestd.proj(x = Male_bapc_result) %>% as.data.frame()
Female_Aproj <- agestd.proj(x = Female_bapc_result) %>% as.data.frame()
Male_Aproj$year <- 1990:2030
Female_Aproj$year <- 1990:2030
构建双坐标轴图
Female_ASR$sex <- 'Female'
Male_ASR$sex <- 'Male'
Male_Aproj$sex <- 'Male'
Female_Aproj$sex <- 'Female'
ASR <- rbind(Female_ASR, Male_ASR)
Num <- rbind(Male_Aproj, Female_Aproj)
ratio <- max(ASR$mean) / max(Num$mean)
plot <- ggplot(Num, aes(year, mean)) +
geom_col(aes(fill = sex), position = 'dodge', width = 0.8) +
geom_errorbar(aes(year, group = sex, ymin = 0.025Q
, ymax = 0.975Q
),
position = position_dodge(width = 0.8),
width = 0.7, cex = 0.5) +
labs(title = NULL, x = 'Year', y = 'Number of cases') +
theme_bw() +
theme(plot.title = element_text(hjust = 0.5),
axis.text.x = element_text(vjust = 1, size = 8, color = 'black'),
axis.text.y = element_text(size = 8, color = 'black'),
axis.title.y = element_text(size = 10),
axis.title.x = element_text(size = 10),
title = element_text(size = 10, hjust = 0.5),
legend.position = 'right') +
geom_ribbon(data = ASR,
aes(x = year, ymin = 0.025Q
/ ratio, ymax = 0.975Q
/ ratio,
fill = sex),
alpha = 0.6) +
geom_line(data = ASR,
aes(x = year, y = mean / ratio,
color = sex)) +
scale_y_continuous(sec.axis = sec_axis(~ . * ratio,
name = "DALYs (per 100000 populations)"))
plot
Male_esoph <- APCList(epi = EC_Male_incidence_n, pyrs = GBD_Global_Male_n, gf = gf)
错误: 函数‘APCList’标签‘epi = "data.table", pyrs = "matrix", gf = "numeric"’找不到继承方法
dput(EC_Male_incidence_n)
structure(list(55 to 59
= c(138430, 144654, 150559, 159421,
166758, 171021, 171801, 169944, 168380, 166087, 164007, 163386,
167054, 171504, 180775, 193729, 203756, 209664, 217628, 224263,
235373, 246497, 258473, 272969, 288747, 306337, 326110, 345184,
363213, 383287, 396082, 408718, NA, NA, NA, NA, NA, NA, NA, NA,
NA),60 to 64
= c(89534, 94761, 98706, 102145, 103217, 103930,
104849, 105945, 107712, 108850, 109946, 108745, 105662, 101732,
98608, 97781, 97569, 102251, 108059, 115157, 122613, 131285,
137219, 145083, 154115, 165612, 176759, 188319, 200418, 211165,
216409, 225142, NA, NA, NA, NA, NA, NA, NA, NA, NA),65 to 69
= c(53156,
56426, 60254, 64406, 67959, 70478, 72281, 73103, 73500, 72931,
72574, 71923, 70927, 69807, 69456, 70424, 69099, 68262, 68035,
67454, 68129, 69521, 72569, 77260, 83567, 90262, 97774, 103895,
111665, 118463, 122421, 127815, NA, NA, NA, NA, NA, NA, NA, NA,
NA),70 to 74
= c(31513, 33376, 35321, 37111, 38867, 40900,
42499, 44002, 45858, 46982, 47199, 46690, 45429, 43664, 42589,
42151, 41231, 41635, 42218, 42203, 42682, 43018, 42993, 43757,
44401, 45345, 47184, 50799, 54710, 59101, 61880, 66167, NA, NA,
NA, NA, NA, NA, NA, NA, NA),75 to 79
= c(18719, 19589, 20274,
21120, 21618, 22507, 23426, 24370, 25314, 25987, 26462, 26501,
26337, 26069, 26211, 26644, 26396, 26315, 26289, 26061, 26168,
26432, 26674, 27466, 28320, 28955, 29643, 30491, 31758, 33035,
33680, 34947, NA, NA, NA, NA, NA, NA, NA, NA, NA),80 to 84
= c(9032,
9602, 10150, 10764, 11349, 11900, 12306, 12614, 12933, 13035,
13262, 13418, 13444, 13206, 13363, 13549, 13562, 13853, 14281,
14661, 15090, 15563, 15856, 16438, 16996, 17425, 17844, 18549,
19396, 20262, 20837, 21343, NA, NA, NA, NA, NA, NA, NA, NA, NA
),85 to 89
= c(3155, 3436, 3710, 3969, 4222, 4497, 4772, 5051,
5351, 5538, 5818, 5846, 5646, 5503, 5384, 5394, 5471, 5790, 6136,
6477, 6797, 7137, 7530, 8044, 8513, 8913, 9277, 9673, 10056,
10586, 11013, 11309, NA, NA, NA, NA, NA, NA, NA, NA, NA),90 to 94
= c(812,
881, 953, 1047, 1146, 1252, 1356, 1471, 1560, 1618, 1669, 1678,
1691, 1733, 1752, 1778, 1799, 1869, 1923, 1984, 2127, 2340, 2587,
2887, 3161, 3374, 3532, 3753, 4016, 4303, 4529, 4711, NA, NA,
NA, NA, NA, NA, NA, NA, NA),95 plus
= c(164, 175, 187, 200,
212, 227, 246, 266, 287, 306, 329, 353, 378, 399, 418, 437, 463,
496, 525, 556, 591, 613, 637, 688, 751, 799, 862, 949, 1050,
1141, 1201, 1257, NA, NA, NA, NA, NA, NA, NA, NA, NA)), row.names = c(NA,
-41L), class = c("data.table", "data.frame"), .internal.selfref = <pointer: 0x000001bdbe2cd980>)
dput(GBD_Global_Male_n)
structure(c(93043051, 94268306, 95759256, 97232387, 98537287,
99705806, 100602318, 101142450, 101632780, 102215780, 102872463,
104632783, 108976980, 113617094, 119698966, 124457382, 130682818,
135039744, 139823654, 143980971, 149992829, 153719830, 156964546,
159344580, 161154059, 163038867, 165793001, 169919916, 175842535,
182762130, 182762130, 182762130, 201815692, 206601361, 210693372,
214199913, 217221379, 219850418, 221830980, 223114054, 224091194,
78582433, 80514976, 81866703, 82875171, 83720656, 84624687, 85780838,
87225997, 88700448, 90058840, 91317514, 92358741, 93098643, 93866641,
94780453, 95798771, 97802571, 102225917, 106814753, 112678386,
117207859, 123162462, 127323655, 131886413, 135881391, 141600527,
145138258, 148207293, 150455972, 152154700, 152154700, 152154700,
159643832, 164360454, 170415922, 177050929, 183527806, 189129815,
193703717, 197631922, 201010555, 57257722, 59237300, 61326597,
63537938, 65688819, 67588088, 69247094, 70443676, 71393752, 72281548,
73269647, 74510864, 76020423, 77550930, 78967415, 80308398, 81525355,
82523674, 83584798, 84740298, 85918716, 87905261, 92109942, 96448342,
101968199, 106195124, 111751389, 115651439, 119896101, 123616740,
123616740, 123616740, 134106956, 136485427, 138080905, 139536006,
141445323, 144363450, 148816292, 154492858, 160684866, 37521629,
38904451, 40541506, 42272391, 44037663, 45724486, 47414572, 49216261,
51141927, 53040951, 54747729, 56259904, 57408367, 58389851, 59383560,
60490627, 61806698, 63337574, 64872070, 66283675, 67624602, 68864015,
69887612, 70997503, 72229877, 73488507, 75424451, 79297104, 83211662,
88103639, 88103639, 88103639, 98976451, 102674777, 106289784,
109747005, 112969033, 115873958, 118071994, 119618808, 121062668,
25058066, 25244744, 25364818, 25490642, 25820611, 26601057, 27713405,
29010022, 30368941, 31774783, 33140441, 34505700, 35955728, 37500896,
39037202, 40466850, 41823120, 42969306, 44010268, 45070708, 46217423,
47489480, 48879204, 50250926, 51518756, 52748299, 53932742, 54955620,
56050131, 57205008, 57205008, 57205008, 63070495, 65887338, 69304567,
72986191, 76633291, 79981204, 83110621, 86208510, 89190788, 13181675,
13592663, 13979505, 14366923, 14706343, 14963386, 15128054, 15262256,
15413884, 15699619, 16293216, 17091067, 17990054, 18916750, 19888827,
20860627, 21848209, 22931304, 24087106, 25233924, 26332649, 27419346,
28374498, 29253875, 30114640, 31036712, 32067642, 33173558, 34247755,
35237747, 35237747, 35237747, 38581399, 39646049, 40712819, 41910212,
43330632, 45039820, 47234164, 49883422, 52722359, 4973059, 5206326,
5455660, 5672989, 5880676, 6087969, 6292907, 6498168, 6711233,
6911397, 7081336, 7213051, 7322478, 7438550, 7629027, 7986432,
8452891, 8985920, 9526895, 10087943, 10660891, 11220673, 11866164,
12558009, 13240491, 13904997, 14569116, 15159279, 15718009, 16283300,
16283300, 16283300, 18873835, 19476177, 20159693, 20901862, 21668243,
22422265, 23153424, 23924046, 24791067, 1242632, 1321739, 1398472,
1488680, 1582613, 1676247, 1760829, 1851604, 1934556, 2014727,
2096918, 2179830, 2263855, 2353772, 2447876, 2533149, 2602346,
2664654, 2727739, 2817863, 2978011, 3172441, 3388093, 3604137,
3834023, 4082991, 4348953, 4654254, 4984889, 5307884, 5307884,
5307884, 6656382, 6917171, 7263506, 7637916, 7994800, 8303510,
8624309, 9011040, 9432871, 254911, 268210, 282715, 297024, 312086,
330742, 354238, 377560, 405824, 436204, 468337, 498949, 529160,
556459, 583427, 612632, 643229, 679392, 720726, 764883, 806612,
840742, 871312, 900792, 935365, 989431, 1051230, 1121096, 1194139,
1276341, 1276341, 1276341, 1610667, 1724051, 1906532, 2085707,
2231577, 2335323, 2467722, 2654368, 2849935), dim = c(41L, 9L
), dimnames = list(NULL, c("55 to 59", "60 to 64", "65 to 69",
"70 to 74", "75 to 79", "80 to 84", "85 to 89", "90 to 94", "95 plus"
)))