首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >检索疫情数据的R包来了!

检索疫情数据的R包来了!

作者头像
Chris生命科学小站
发布2023-02-28 19:11:49
发布2023-02-28 19:11:49
59200
代码可运行
举报
运行总次数:0
代码可运行

安装

在R里跑下面这句,包就安装好了。

代码语言:javascript
代码运行次数:0
运行
复制
remotes::install_github("GuangchuangYu/nCov2019")

使用起来相当容易,小白也会用,看完就知道了,再菜的鸟也必须会用。

初印象

代码语言:javascript
代码运行次数:0
运行
复制
library(nCov2019)
x <- get_nCov2019()

加载包之后,用一条语句,拿到当前最新的数据,每天都可以跑一下,拿到最新的数据。

打印一下你拿到的数据,它会显示中国确诊的人数,以及这个数据的更新时间:

代码语言:javascript
代码运行次数:0
运行
复制
> x
China (total confirmed cases): 14489
last update: 2020-02-02 19:22:51 

更新时间很重要,因为数字是不断在更新,比如你使用当前的数据来画图,你想在图上加个时间注释,为了让这事变得更容易,nCov2019包提供了time方法,返回数据更新时间:

代码语言:javascript
代码运行次数:0
运行
复制
> time(x)
[1] "2020-02-02 19:22:51"

数据源来自于腾讯,如果你想在线访问,使用open(x),它会打开浏览器,直接到达页面:

各省数据

只需要用x[],就能拿到全国的数据,不带下标,返回全国,这时候,你应该可以猜到带下标可以访问到各省市了。

代码语言:javascript
代码运行次数:0
运行
复制
> x[]
     name confirm suspect dead heal
1    湖北    9074       0  294  221
2    浙江     661       0    0   23
3    广东     632       0    0   12
4    河南     493       0    2    5
5    湖南     463       0    0   12
6    安徽     340       0    0    6
7    江西     333       0    0   10
8    重庆     275       0    1    7
9    江苏     236       0    0    6
10   四川     231       0    1    4
11   山东     230       0    0    5
12   北京     191       0    1    9
13   上海     182       0    1   10
14   福建     159       0    0    0
15   陕西     116       0    0    0
16   广西     111       0    0    2
17   云南     105       0    0    2
18   河北     104       0    1    6
19 黑龙江      95       0    2    2
20   辽宁      69       0    0    1
21   海南      64       0    1    4
22   山西      56       0    0    2
23   天津      48       0    0    0
24   甘肃      40       0    0    0
25   贵州      38       0    0    2
26   宁夏      28       0    0    0
27 内蒙古      27       0    0    1
28   吉林      23       0    0    1
29   新疆      21       0    0    0
30   香港      14       0    0    0
31   青海      11       0    0    0
32   台湾      10       0    0    0
33   澳门       8       0    0    0
34   西藏       1       0    0    0

比如说湖北省:

代码语言:javascript
代码运行次数:0
运行
复制
> x[1,]
         name confirm suspect dead heal
1        武汉    4109       0  224  144
2        黄冈    1002       0   15   27
3        孝感     749       0   14    2
4        襄阳     441       0    0    0
5        随州     384       0    3    3
6        宜昌     353       0    1    0
7        荆州     333       0    4    1
8        荆门     329       0    7    3
9        鄂州     278       0   13    0
10       黄石     252       0    2    1
11       咸宁     246       0    0    1
12       十堰     212       0    0    0
13       仙桃     140       0    3    0
14     恩施州     105       0    0    1
15       天门      99       0    7    0
16       潜江      35       0    1    0
17     神农架       7       0    0    2
18 地区待确认       0       0    0   36

你使用中文名字也可以,比如说访问广东的数据:

代码语言:javascript
代码运行次数:0
运行
复制
> x['广东', ]
   name confirm suspect dead heal
1  深圳     207       0    0    5
2  广州     179       0    0    1
3  珠海      47       0    0    1
4  佛山      43       0    0    1
5  东莞      27       0    0    0
6  惠州      23       0    0    1
7  中山      21       0    0    0
8  汕头      15       0    0    0
9  湛江      14       0    0    1
10 阳江      10       0    0    0
11 梅州       7       0    0    0
12 肇庆       7       0    0    1
13 揭阳       6       0    0    0
14 清远       6       0    0    1
15 韶关       5       0    0    0
16 汕尾       4       0    0    0
17 潮州       4       0    0    0
18 茂名       3       0    0    0
19 江门       3       0    0    0
20 河源       1       0    0    0

随手就可以画一图:

代码语言:javascript
代码运行次数:0
运行
复制
library(forcats)
library(ggplot2)
d = x['广东',]
d$confirm=as.numeric(d$confirm)
d$name = fct_reorder(d$name, d$confirm)

ggplot(d, aes(name, confirm)) + 
  geom_col(fill='steelblue') + coord_flip() +
  geom_text(aes(y = confirm+2, label=confirm), hjust=0) +
  theme_minimal(base_size=14) + 
  scale_y_continuous(expand=c(0,10)) +
  xlab(NULL) + ylab(NULL)

每日新增

前面演示了每日累积的数据,如果要看新增,用起来一模一样,只需加一个参数,by="today"。比如说全国新增:

代码语言:javascript
代码运行次数:0
运行
复制
> head(x[by='today'], 10)
   name confirm suspect dead heal
1  湖北    1921       0   45   55
2  浙江      62       0    0    9
3  广东      97       0    0    0
4  河南      71       0    0    2
5  湖南      73       0    0    4
6  安徽      43       0    0    1
7  江西      47       0    0    1
8  重庆      20       0    0    4
9  江苏      34       0    0    1
10 四川      24       0    0    1

再比如湖北新增:

代码语言:javascript
代码运行次数:0
运行
复制
> x['湖北', by = "today"]
         name confirm suspect dead heal
1        武汉     894       0   32   38
2        黄冈     276       0    1   10
3        孝感     121       0    2    0
4        襄阳      94       0    0    0
5        随州      80       0    2    3
6        宜昌      77       0    0    0
7        荆州      46       0    0    0
8        荆门      78       0    2    2
9        鄂州      51       0    4    0
10       黄石      43       0    0    1
11       咸宁      40       0    0    0
12       十堰      35       0    0    0
13       仙桃      43       0    2    0
14     恩施州      18       0    0    1
15       天门      17       0    0    0
16       潜江       8       0    0    0
17     神农架       0       0    0    0
18 地区待确认       0       0    0    0

全球数据

也是一样的使用,把下标改为global即可:

代码语言:javascript
代码运行次数:0
运行
复制
> x['global',]
       name confirm suspect dead heal
1      中国   14489       0  304  353
2      日本      20       0    0    1
3      泰国      19       0    0    7
4    新加坡      18       0    0    0
5      韩国      15       0    0    0
6  澳大利亚      12       0    0    2
7      美国       8       0    0    0
8  马来西亚       8       0    0    0
9      德国       8       0    0    0
10     越南       7       0    0    0
11     法国       6       0    0    0
12   阿联酋       5       0    0    0
13   加拿大       4       0    0    0
14   菲律宾       2       0    1    0
15     印度       2       0    0    0
16   意大利       2       0    0    0
17     英国       2       0    0    0
18   俄罗斯       2       0    0    0
19   尼泊尔       1       0    0    0
20 斯里兰卡       1       0    0    1
21     芬兰       1       0    0    0
22   柬埔寨       1       0    0    0
23     瑞典       1       0    0    0

每日数据

由于使用下标被我设计为访问各地的数据,那么要访问中国每日的统计数据,就得用别的方法,于是我定义了summary,你只要一summary就出来:

代码语言:javascript
代码运行次数:0
运行
复制
> summary(x)
    date confirm suspect dead heal
1  01.13      41       0    1    0
2  01.14      41       0    1    0
3  01.15      41       0    2    5
4  01.16      45       0    2    8
5  01.17      62       0    2   12
6  01.18     198       0    3   17
7  01.19     275       0    4   18
8  01.20     291      54    6   25
9  01.21     440      37    9   25
10 01.22     571     393   17   25
11 01.23     830    1072   25   34
12 01.24    1287    1965   41   38
13 01.25    1975    2684   56   49
14 01.26    2744    5794   80   51
15 01.27    4515    6973  106   60
16 01.28    5974    9239  132  103
17 01.29    7711   12167  170  124
18 01.30    9692   15238  213  171
19 01.31   11791   17988  259  243
20 02.01   14380   19544  304  328

如果想要每日新增呢,一样的,by="today"就行:

代码语言:javascript
代码运行次数:0
运行
复制
> summary(x, by='today')
    date confirm suspect dead heal
1  01.20      77      27    0    0
2  01.21     149      53    3    0
3  01.22     131     257    8    0
4  01.23     259     680    8    6
5  01.24     444    1118   16    3
6  01.25     688    1309   15   11
7  01.26     769    3806   24    2
8  01.27    1771    2077   26    9
9  01.28    1459    3248   26   43
10 01.29    1737    4148   38   21
11 01.30    1982    4812   43   47
12 01.31    2102    5019   46   72
13 02.01    2590    4562   45   85

随手又可以来一图:

代码语言:javascript
代码运行次数:0
运行
复制
library(ggplot2)
ggplot(summary(x), aes(as.Date(date, "%m.%d"), as.numeric(confirm))) +
  geom_col(fill='firebrick') + theme_minimal(base_size = 14) +
  xlab(NULL) + ylab(NULL) + 
  labs(caption = paste("accessed date:", time(x)))
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Chris生命科学小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装
  • 初印象
  • 各省数据
  • 每日新增
  • 全球数据
  • 每日数据
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档