令和2年2月21日版の国内コロナ陽性者をgooglevisでやる

www.mhlw.go.jp
これの2月20日12:00現在、確認されている国内の発生状況の国内事例(チャーター便帰国者を除く)をgooglevisを使って都道府県名別にプロットしてみようと思った。
googlevisクッソ使いにくい。
厚生労働省もがんばっているのだろうが、(令和2年2月21日版)って半角と全角が入り乱れいるのが謎だし、2月19日版のデータでは年齢が40<代っていう人がいてがんばれ、って思った。




GeoChartID1d202ba7ad88






新型コロナウイルス感染症の現在の状況と厚生労働省の対応について(令和2年2月21日版)

library(googleVis)
library(stringr)
library(textreadr)
url <- "https://www.mhlw.go.jp/stf/newpage_09670.html" # 2月19日版
url <- "https://www.mhlw.go.jp/stf/newpage_09690.html" # 2月21日版
webpage <-"新型コロナウイルス感染症の現在の状況と厚生労働省の対応について(令和2年2月21日版)" 
html <- read_html(url)

idx0 <- which(str_detect(html, "確認されている国内の発生状況は以下のとおり"))
idx1 <- which(str_detect(html, "2/19"))
idx2 <- which(str_detect(html, "男|女"))
idx3 <- which(str_detect(html, "武漢市からのチャーター便帰国者に係る発生状況"))
idx4 <- idx2[idx2 < idx3]

pref <- c('北海道','青森','岩手','宮城','秋田','山形','福島','茨城','栃木','群馬','埼玉','千葉','東京','神奈川','新潟','富山','石川','福井','山梨','長野','岐阜','静岡','愛知','三重','滋賀','京都','大阪','兵庫','奈良','和歌山','鳥取','島根','岡山','広島','山口','徳島','香川','愛媛','高知','福岡','佐賀','長崎','熊本','大分','宮崎','鹿児島','沖縄')

mat <- matrix(html[c(t(outer(idx4, -2:1, "+")))], nc=4, byrow=TRUE)
colnames(mat) <- c("date", "age", "sex", "pref")
mat[,4] <- str_replace(mat[,4], "[都道府県]$", "")
mat[,4] <- ifelse(mat[,4]=="中国", NA, mat[,4])
mat <- as.data.frame(mat)
mat[,1] <- as.Date(sprintf("2020/%s", mat[,1]))

dat <- data.frame(table(factor(mat$pref, pref)))
colnames(dat) <- c("pref", "N")

opt <- list(region="JP", displayMode="regions", resolution="provinces", height=500, width=800)
c0 <- seq(min(dat$N), max(dat$N), length=7)
opt$colorAxis <- paste0("{values:[", paste(c0, collapse=","), "], colors:['", paste0(matlab::jet.colors(length(c0)), collapse="','"), "']}", collapse="")

gmap <- gvisGeoChart(dat, "pref", "N", options=opt)
gmap$html$caption <- NULL
#gmap$html$footer <- NULL
gmap$html$footer <- str_replace(gmap$html$footer,
                                "<span> \n  .+\n  .+\n</span>",
                                sprintf("<span><a href='%s' target='_blank'>%s</a></span>", url, webpage))
plot(gmap)