传播链是现场行病学中展示传染病传播关系的重要可视化工具。传统关系型数据绘制工具比较繁琐、费时,而R语言中专门有{contacts}包可供调用。
该包可直接用install.packages()安装。
library(tidyverse) #数据处理
library(outbreaks) #获取mers_korea_2015数据集
library(epicontacts) #绘制plot
linelist = outbreaks::mers_korea_2015$linelist
linelist %>%
as_tibble() %>%
select(1:4) %>%
slice_sample(n = 10) %>%
knitr::kable()
id | age | age_class | sex |
---|---|---|---|
SK_33 | 47 | 40-49 | M |
SK_42 | 54 | 50-59 | F |
SK_34 | 25 | 20-29 | F |
SK_108 | 32 | 30-39 | F |
SK_27 | 55 | 50-59 | M |
SK_21 | 59 | 50-59 | F |
SK_158 | 50 | 50-59 | M |
SK_52 | 54 | 50-59 | F |
SK_3 | 76 | 70-79 | M |
SK_12 | 49 | 40-49 | F |
其中病例识标变量是必须的,其他视需要添加,本例中id变量必须提供。
contacts = outbreaks::mers_korea_2015$contacts
contacts %>%
as_tibble() %>%
slice_sample(n = 10) %>%
knitr::kable()
from | to | exposure | diff_dt_onset |
---|---|---|---|
SK_15 | SK_94 | Hospital room | 9 |
SK_1 | SK_27 | Hospital room | 21 |
SK_16 | SK_24 | Hospital room | 11 |
SK_14 | SK_116 | Emergency room | 13 |
SK_6 | SK_88 | Hospital room | 14 |
SK_14 | SK_98 | Emergency room | 18 |
SK_123 | SK_147 | Hospital room | 3 |
SK_15 | SK_93 | Hospital room | 14 |
SK_1 | SK_33 | Visit hospital | 10 |
SK_1 | SK_13 | Visit hospital | 10 |
其中必须有两列变量,一列是from:表明传染源,另一列是to:表明续发病例,病例标识须与病例一览表中病例标识对应。
merskor15 <- make_epicontacts(
linelist = mers_korea_2015$linelist,
contacts = mers_korea_2015$contacts,
directed = T)
plot(merskor15)