Много вариантов. Один из них - это пакет rworldmap .
library(rworldmap)
Нам нужны данные для сопоставления.
COVID <- read.csv("https://opendata.ecdc.europa.eu/covid19/casedistribution/csv", na.strings = "", fileEncoding = "UTF-8-BOM")
Агрегировать, чтобы получить общее количество наблюдений.
library(dplyr)
CASES <- COVID %>% group_by(countriesAndTerritories) %>%
summarise(`Total cases` = sum(cases)) %>%
mutate(countriesAndTerritories=gsub("_", " ", countriesAndTerritories))
Если у вас уже есть данные, вы можете начать отсюда. Всего два шага.
Шаг 1. Присоедините карту к вашим собственным данным, используя "NAME" для joinCode
и имя переменной в ваших данных, которая представляет название страны для nameJoinColumn
.
COVID.map <- joinCountryData2Map(CASES, joinCode = "NAME", nameJoinColumn = "countriesAndTerritories")
Шаг 2. Постройте этот объект.
par(mar=c(0,0,1,0))
mapCountryData(COVID.map, nameColumnToPlot="Total cases")
It's not a particularly useful map because the data are highly skewed. But you can see how easy it is. The most difficult part is to ensure your country names match those from the package. You can see these from:
countryRegions$ADMIN
[1] "Afghanistan" "Akrotiri Sovereign Base Area" "Aland"
[4] "Albania" "Algeria" "American Samoa"
There's also a country synonym data base:
countrySynonyms
A ggplot version:
library(ggplot2)
library(scales)
library(sf)
library(rnaturalearth)
library(rnaturalearthdata)
world
введите описание изображения здесь