在公共卫生研究中,通过世界地图可视化健康指标的全球分布对于理解疾病负担的地区差异至关重要。今天,我们将介绍如何使用R语言和GlobalBurdenR工具包处理全球疾病负担(GBD)数据,生成世界地图,以可视化不同指标如ASIR(年龄标准化发病率)、EAPC(估计年度百分比变化)和变化率等在全球范围内的分布。
背景介绍
GBD数据库提供了全球范围内的健康数据,研究人员可以利用这些数据分析健康指标在不同国家和地区的分布情况。我们的教学代码专注于从CSV文件加载GBD数据,并通过世界地图直观展示2021年和1990-2019年间的ASIR、EAPC和变化率等指标,帮助理解疾病负担的全球分布和时间趋势。
代码功能解析
这段R代码主要完成了以下几个步骤:
-
设置工作目录和加载库:设置工作目录并加载必要的R库,包括
sf
、patchwork
、ggplot2
、tidyverse
和GlobalBurdenR
,以支持数据处理和地图绘制。 -
数据加载和过滤:从CSV文件加载GBD数据,并通过
gbd_filter
函数筛选出符合特定条件的数据。 -
计算指标:计算EAPC和变化率等指标,用于后续可视化。
-
绘制世界地图:使用
plot_world_map
函数生成世界地图,展示不同指标的全球分布,并保存为PDF文件。
代码详细解读
以下是代码的详细解读,帮助您理解每个步骤的具体实现:
# 设置工作目录
setwd('X:/GBD数据库示例数据')
# 加载必要的库
library(sf) # 用于处理空间数据
library(patchwork) # 用于组合多个图表
library(ggplot2) # 用于数据可视化
library(tidyverse) # 用于数据处理
library(GlobalBurdenR) # 用于GBD数据分析和可视化
# 加载数据
GBD=read.csv('MA_area.csv') # 从CSV文件加载GBD数据
# 过滤数据:2021年所有年龄死亡率数据
dta<-gbd_filter(GBD,measure=='Deaths',age=='All Ages',
year==2021,sex=="Both",metric=='Rate') # 筛选出2021年所有年龄、两性、死亡率数据
# 绘制世界地图:ASIR 2019
map=plot_world_map(dta,
only_large_map=FALSE, # 显示完整地图包括小图
color_palette="Spectral", # 颜色调色板设为"Spectral"
legend_name="ASIR", # 图例名称设为"ASIR"
plot_title="World ASIR 2019") # 图表标题设为"World ASIR 2019"
# 绘制世界地图:ASIR 2019(仅大图)
map2=plot_world_map(dta,
only_large_map=TRUE, # 仅显示大图
color_palette="Reds", # 颜色调色板设为"Reds"
legend_name="ASIR", # 图例名称设为"ASIR"
plot_title="ASIR 2019") # 图表标题设为"ASIR 2019"
# 保存图表为PDF
ggsave(filename="2world_map_asir_2019.pdf",
plot=map2,
device="pdf",
width=10,
height=8)
# 过滤数据:年龄标准化发病率数据
dta2<-gbd_filter(GBD,measure=='Incidence',age=='Age-standardized',
sex=="Both",metric=='Rate') # 筛选出年龄标准化、两性、发病率数据
# 计算EAPC(估计年度百分比变化)
EAPC=compute_gbd_eapc(dta2)
EAPC$val=EAPC$EAPC # 将EAPC值赋给val字段用于绘图
# 绘制世界地图:EAPC 1990-2019
map3=plot_world_map(EAPC,
only_large_map=FALSE, # 显示完整地图包括小图
color_palette="Spectral", # 颜色调色板设为"Spectral"
legend_name="EAPC", # 图例名称设为"EAPC"
plot_title="World EPAC 1990-2019") # 图表标题设为"World EPAC 1990-2019"
# 保存图表为PDF
ggsave(filename="3world_map_asir_2019.pdf",
plot=map3,
device="pdf",
width=10,
height=8)
# 计算总体变化率
result<-calculate_change_rate(dta2,year1=1996, year2=2015) # 计算1996年至2015年的变化率
result$val=result$change_rate # 将变化率值赋给val字段用于绘图
# 绘制世界地图:变化率 1990-2019
map6=plot_world_map(result,
only_large_map=TRUE, # 仅显示大图
color_palette='Spectral', # 颜色调色板设为"Spectral"
legend_name="Rate Change", # 图例名称设为"Rate Change"
plot_title="Rate Change 1990-2019") # 图表标题设为"Rate Change 1990-2019"
# 保存图表为PDF
ggsave(filename="6world_map_asir_2019.pdf",
plot=map6,
device="pdf",
width=10,
height=8)
解读说明:
-
设置工作目录和加载库:代码设置工作目录为GBD数据存储位置,并加载了多个R库,其中
sf
用于处理空间数据,patchwork
用于组合图表,ggplot2
和tidyverse
用于数据可视化和处理,GlobalBurdenR
提供了专门的GBD数据分析和可视化工具。 -
数据加载和过滤:通过
read.csv
函数从CSV文件加载GBD数据,并使用gbd_filter
函数筛选出符合条件的数据。第一次筛选针对2021年所有年龄、两性、死亡率数据(dta
);第二次筛选针对年龄标准化、两性、发病率数据(dta2
)。 -
计算指标:
compute_gbd_eapc
函数计算EAPC(估计年度百分比变化),calculate_change_rate
函数计算1996年至2015年的变化率,这些指标用于后续的世界地图可视化。 -
绘制世界地图:
plot_world_map
函数是GlobalBurdenR工具包的一部分,用于生成世界地图。参数only_large_map
控制是否仅显示大图,color_palette
设置颜色调色板,legend_name
和plot_title
分别设置图例名称和图表标题。生成的地图通过ggsave
函数保存为PDF文件,设置了文件名、设备类型、宽度和高度。
#还有一类就行分段地#
plot <- plot_world_map_D(
data = dta,
only_large_map = FALSE, # 只绘制大地图
breaks = c(0,1,3,5,7,10,20,30), # 自定义分段范围
labels = c("0~1","1~3","3~5","5~7",'7-10',"10~20","20+"), # 自定义分段标签
color_palette = colors, # 使用自定义颜色调色板
legend_name = "ASR (/10^5)", # 图例标题
plot_title = "World ASR with Binned Colors",
small_titles = c("Caribbean and Central America",
"Persian Gulf",
"Balkan Peninsula",
"China",
"West Africa",
"Eastern Mediterranean",
"Northern Europe"),
small_map_coordinates = list(
c(-92, -60, 5, 27), # 加勒比海和中美洲
c(45, 55, 19, 31), # 波斯湾
c(12, 32, 35, 53), # 巴尔干半岛
c(73.0,130.0,3.5,53.0), # 中国
c(-17, -7, 7, 20), # 西非
c(32, 37, 29, 35), # 东地中海
c(5, 25, 48, 60) # 北欧
)
)
plot
应用场景
通过这段代码,研究人员可以直观地分析健康指标如ASIR、EAPC和变化率在全球范围内的分布,并通过世界地图清晰展示地区间的差异。这对于理解疾病负担的全球分布、识别高风险地区以及评估时间趋势和政策效果具有重要意义。
使用R语言和GlobalBurdenR工具包处理GBD数据并绘制世界地图,可以帮助我们深入理解健康指标的全球分布和时间趋势。希望这段代码和详细解读能为您的研究提供启发,如果您有任何问题或需要进一步的指导,欢迎留言交流。
关注我们的公众号,获取更多数据分析和可视化的实用教程!