楼主: llb_321
1570 0

[程序分享] 【独家发布】R示例:COVID19数据获取 [推广有奖]

  • 3关注
  • 49粉丝

教授VIP

已卖:595份资源

学科带头人

9%

还不是VIP/贵宾

-

TA的文库  其他...

LATEX & R 模板和代码

威望
2
论坛币
28191 个
通用积分
1739.6743
学术水平
410 点
热心指数
421 点
信用等级
355 点
经验
2099 点
帖子
1410
精华
1
在线时间
1035 小时
注册时间
2010-6-18
最后登录
2023-8-18

初级热心勋章 初级信用勋章 中级热心勋章 中级信用勋章 初级学术勋章

楼主
llb_321 在职认证  发表于 2020-7-15 09:11:32 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
说明:本示例代码仅供学习参考,不得用于商业目的。使用时请遵守互联网信息安全相关法规。

数据源:丁香园
实现:R
数据结果:当日获取前一日国内分省、地级市和全球各国确诊、治愈、未愈、病故数据
代码如下:

#上午11:30提取

#国内数据-----------------------------------------
library(xml2)
library(rvest)
library(magrittr)
library(dplyr)
library(tidyr)
library(stringr)
library(knitr)
library(lubridate)
library(data.table)
library(downloader)

url<-"https://ncov.dxy.cn/ncovh5/view/pneumonia"

domestic<-read_html(url)%>% html_nodes("#getAreaStat")%>%html_text()
province_info<-str_extract_all(domestic,'(?=provinceShortName\\"\\:).+?(?=\\,\\"cities)')
province_name_info<-str_extract_all(province_info[[1]],'(?<=provinceShortName\\"\\:\\").+?(?=\\"\\,)')%>%
unlist()
province_other_info<-data.frame(x=gsub("[^0-9]"," ",province_info[[1]]))%>%
separate(x,c('provinceName','currentConfirmedCount','confirmedCount','suspectedCount','curedCount','deadCount'))%>%
mutate(provincename=as.character(province_name_info),currentConfirmedCount=as.numeric(currentConfirmedCount))
temp_1<-select(province_other_info,provincename,currentConfirmedCount,confirmedCount,curedCount,deadCount)
colnames(temp_1)<-c("省份","尚未愈","确诊","治愈","病故")
write.csv(temp_1,file=paste("e:/covid19/COVID19_07",as.character(day(Sys.Date()-1)),".csv",sep=""),row.names=F,quote=F)

cities_all_info<-str_extract_all(domestic,'(?=cityName\\"\\:).+?(?=\\}\\,)')
city_name_info<-str_extract_all(cities_all_info[[1]],'(?<=cityName\\"\\:\\").+?(?=\\"\\,)')%>%unlist()
city_other_info<-data.frame(x=gsub("[^0-9]"," ",cities_all_info[[1]]))%>%
separate(x, c('cityName','currentConfirmedCount','confirmedCount','suspectedCount','curedCount','deadCount'))%>%
mutate(cityname=as.character(city_name_info),currentConfirmedCount=as.numeric(currentConfirmedCount))
temp_2<-select(city_other_info,cityname,currentConfirmedCount,confirmedCount,curedCount,deadCount)
colnames(temp_2)<-c("城市","尚未愈","确诊","治愈","病故")
write.csv(temp_2,file=paste("e:/covid19/COVID19city_07",as.character(day(Sys.Date()-1)),".csv",sep=""),row.names=F,quote=F)


#全球数据-----------------------------------------
world<-read_html(url)%>%html_nodes("#getListByCountryTypeService2true")%>%html_text()
country_info<-str_extract_all(world,'(?=provinceName\\"\\:).+?deadCount\\"\\:[0-9]+')
country_name_info<-str_extract_all(country_info[[1]],'(?<=provinceName\\"\\:\\").+?(?=\\"\\,)')%>%unlist()
country_other_info<-data.frame(y=gsub("[^0-9]"," ",country_info[[1]]))%>%
separate(y,c('provinceName','currentConfirmedCount','confirmedCount','confirmedCountRank','suspectedCount','curedCount','deadCount'))%>%
mutate(countryName=as.character(country_name_info),currentConfirmedCount=as.numeric(currentConfirmedCount))
norm_1<-filter(country_other_info,!(is.na(deadCount)))%>%
select(countryName,currentConfirmedCount,confirmedCount,curedCount,deadCount)
norm_2<-filter(country_other_info,is.na(deadCount))%>%
select(countryName,currentConfirmedCount,confirmedCount,suspectedCount,curedCount)%>%
rename(deadCount=curedCount,curedCount=suspectedCount)
normal<-rbind(norm_1,norm_2)
colnames(normal)<-c("国别","尚未愈","确诊","治愈","病故")
write.csv(normal,file=paste("e:/covid19/COVID19country_07",as.character(day(Sys.Date()-1)),".csv",sep=""),row.names=F,quote=F)



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:OVID downloader Character province download 数据获取 COVID19

已有 1 人评分论坛币 收起 理由
cheetahfly + 30 精彩帖子

总评分: 论坛币 + 30   查看全部评分

本帖被以下文库推荐

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-3 06:18