Para visualizar os dados em um mapa, vamos carregar o shapefile do mundo do pacote tmap e selecionar os países da América Latina e Caribe.

# carregando o shapefile do mundo
data("World") # from tmap
# criando vetor com paises fora da latinoamerica e caribe (lac)
fora <- c("Canada", "United States", "Greenland")
# selecionando apenas paises lac
lac <- World[World$continent %in% c("South America", "North America")
             & !World$name %in% fora, ]

Agora vamos baixar a última atualização dos dados curados pela John Hopkins University.

# baixando os dados de covid-19 para o mundo
dados_jhu <- get_corona_jhu()
# checando se todos paises lac entao em jhu
lac$name[!lac$name %in% dados_jhu$country_region]
# vamos alterar os nomes em lac para bater com jhu
lac$country_region <- as.character(lac$name)
lac$country_region[lac$country_region == "Dominican Rep."] <- "Dominican Republic"
# selecionando apenas países da lac
dados_lac <- dados_jhu[dados_jhu$country_region %in% lac$country_region, ]
# agregando dados por país
df_lac <- aggregate(confirmed ~ country_region, data = dados_lac, FUN = sum)

Para fazer visualizar os dados no mapa, precisamos juntar os dados de casos de COVID-19 na América Latina e Caribe com os dados do shapefile para a região.

covid_lac <- merge(lac, df_lac, by = "country_region")
covid_lac$confirmed_per100k <- (covid_lac$confirmed/covid_lac$pop_est) * 100000

E agora sim, vamos visualizar os dados em um mapa dinâmico.

Para obter as classes e o texto da legenda:

#maxi <- ceiling(max(covid_lac$confirmed_per100k)/100)*100
#breaks <- c(0, 500, 1000, 2000, 3000, maxi)
h <- hist(covid_lac$confirmed_per100k, plot = F)
breaks <- h$breaks
text <- paste(breaks[1:length(breaks)-1], "a", breaks[2:length(breaks)])
text[length(breaks)-1] <- paste(">", breaks[length(breaks)-1])

O mapa:

tmap_mode("view")
tm <- tm_shape(covid_lac) +
  tm_polygons("confirmed_per100k", 
              title = "Casos por 100 mil hab.", 
              breaks = breaks, 
              labels = text) +
  tmap_style("col_blind")
tm