使用R语言和GlobalBurdenR分析GBD数据:绘制世界地图(GBD系列第九集)

在公共卫生研究中,通过世界地图可视化健康指标的全球分布对于理解疾病负担的地区差异至关重要。今天,我们将介绍如何使用R语言和GlobalBurdenR工具包处理全球疾病负担(GBD)数据,生成世界地图,以可视化不同指标如ASIR(年龄标准化发病率)、EAPC(估计年度百分比变化)和变化率等在全球范围内的分布。

背景介绍

GBD数据库提供了全球范围内的健康数据,研究人员可以利用这些数据分析健康指标在不同国家和地区的分布情况。我们的教学代码专注于从CSV文件加载GBD数据,并通过世界地图直观展示2021年和1990-2019年间的ASIR、EAPC和变化率等指标,帮助理解疾病负担的全球分布和时间趋势。

代码功能解析

这段R代码主要完成了以下几个步骤:

  1. 设置工作目录和加载库:设置工作目录并加载必要的R库,包括sfpatchworkggplot2tidyverseGlobalBurdenR,以支持数据处理和地图绘制。

  2. 数据加载和过滤:从CSV文件加载GBD数据,并通过gbd_filter函数筛选出符合特定条件的数据。

  3. 计算指标:计算EAPC和变化率等指标,用于后续可视化。

  4. 绘制世界地图:使用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用于组合图表,ggplot2tidyverse用于数据可视化和处理,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_nameplot_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数据并绘制世界地图,可以帮助我们深入理解健康指标的全球分布和时间趋势。希望这段代码和详细解读能为您的研究提供启发,如果您有任何问题或需要进一步的指导,欢迎留言交流。

关注我们的公众号,获取更多数据分析和可视化的实用教程!

### 绘制全球疾病负担(GBD)相关的分布地图 为了使用 R 语言绘制全球疾病负担 (GBD) 数据的地图,可以利用 `ggplot2` 其他地理空间绘图包来实现这一目标。具体来说,可以通过以下方式完成: #### 准备工作环境 安装并加载必要的软件包,这些工具对于处理可视化地理数据至关重要。 ```r install.packages(c("ggplot2", "sf", "rnaturalearth", "rnaturalearthdata")) library(ggplot2) library(sf) library(rnaturalearth) library(rnaturalearthdata) ``` #### 获取世界边界数据 通过 `rnaturalearth` 包获取国家边界的矢量数据集,这有助于创建基础地图框架。 ```r world <- ne_countries(scale = "medium", returnclass = "sf") ``` #### 加载 GBD 数据 假设已经有了来自 Global Burden of Disease Study 的整理好的 CSV 文件或其他格式的数据源[^1]。读取该文件,并确保其包含地理位置信息(如 ISO 国家代码),以便能够与地图上的区域对应起来。 ```r gbd_data <- read.csv("path_to_your_gbd_dataset.csv") # 替换为实际路径 head(gbd_data) ``` #### 合并与准备绘图所需的数据框 将 GBD 数据与世界边界数据合并,基于共同的关键字段(例如国家名称或 ISO 代码)。这样可以在地图上显示特定疾病的统计数据。 ```r merged_data <- merge(world, gbd_data, by.x="iso_a3", by.y="country_code_or_similar_field") ``` #### 创建地图图表 使用 `ggplot2` 来构建最终的地图视图。设置合适的美学参数,比如颜色渐变表示不同水平的疾病负担;还可以添加额外的文字标签或者调整主题样式以增强可读性美观度。 ```r p <- ggplot(data=merged_data) + geom_sf(aes(fill=value_of_interest), color='white') + # value_of_interest 应替换为你想要展示的具体指标列名 scale_fill_viridis_c(option="plasma", direction=-1) + labs(title="Global Distribution Map of Specific Health Indicator", subtitle="(Based on GBD Dataset)", fill="Value")+ theme_minimal() print(p) ``` 以上过程展示了如何结合地理信息系统技术统计分析方法,在 R 中制作一张反映全球范围内某种健康状况的空间分布特征的地图。这种方法不仅适用于肝癌等单一病种的研究,也适合于更广泛的公共卫生议题探讨[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值