Аналитический пакет R. Графические системы в R: пакеты base, lattice, ggplot2

Создать .Rmd скрипт, который генерирует html-отчёт с двумя картами:

  1. Картограмма с таблицей стран мира по показателю из базы Всемирного банка (интерактивная картограмма из примера).

  2. Карта с маркерами или с радиусами, построенная по набору данных с Портала открытых данных РФ.

WDI: любой показатель из раздела “Climate Change” (Изменение климата).

В данной работе используется следующий показатель: CO2 emissions (kt)- выбросы CO2 (тыс. Т).

# загрузка пакетов
library('data.table')
library('WDI')
library('leaflet')
# devtools::install_github('mages/googleVis')
suppressPackageStartupMessages(library('googleVis'))

# для загрузки свежей версии pandoc:
#  https://github.com/pandoc-extras/pandoc-nightly/releases/tag/hash-7c20fab3
#  архив pandoc-windows-7c20fab3.zip распаковать в RStudio/bin/pandoc

R Markdown

# данные по ВВП по ППП
indicator.code <- 'EN.ATM.CO2E.KT'
DT <- data.table(WDI(indicator = indicator.code, start = 2014, end = 2014))

# все коды стран iso2
fileURL <- 'https://pkgstore.datahub.io/core/country-list/data_csv/data/d7c9d7cfb42cb69f4422dec222dbbaa8/data_csv.csv'
all.iso2.country.codes <- read.csv(fileURL, stringsAsFactors = F, 
                                   na.strings = '.')
# убираем макрорегионы
DT <- na.omit(DT[iso2c %in% all.iso2.country.codes$Code, ])

# объект: таблица исходных данных
g.tbl <- gvisTable(data = DT[, -'year'], 
                   options = list(width = 300, height = 400))
# объект: интерактивная карта
g.chart <- gvisGeoChart(data = DT, 
                        locationvar = 'iso2c', 
                        hovervar = 'country',
                        colorvar = indicator.code, 
                        options = list(width = 500, 
                                       height = 400, 
                                       dataMode = 'regions'))
# размещаем таблицу и карту на одной панели (слева направо)
TG <- gvisMerge(g.tbl, g.chart, 
                horizontal = TRUE, 
                tableOptions = 'bgcolor=\"#CCCCCC\" cellspacing=10')

# вставляем результат в html-документ
TG
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”> MergedID2a143782412a
Data: various • Chart ID: MergedID2a143782412agoogleVis-0.6.4
R version 3.6.2 (2019-12-12) • Google Terms of Use • Data Policy: See individual charts

Карты на основе leaflet

На этой карте показано расположение площадок для сдачи экзамена в Государственной инспекции безопасности дорожного движения Главного управления Министерства внутренних дел Российской Федерации по городу Москве. Список аптек получен с Портала открытых данных РФ, географические координаты определены по адресам с помощью API Яндекс Геокодера.

# картинка-логотип для маркеров объекта
fileURL <- 'https://github.com/aksyuk/R-data/raw/master/pics/pharmacy-icon.png'
pharm.icon <- makeIcon(iconUrl = fileURL, 
                       iconWidth = 31,
                       iconHeight = 31,
                       iconAnchorX = 31,
                       iconAnchorY = 31)


DT.loc <- read.csv2('./data.csv',stringsAsFactors = FALSE)

DT.loc$lat <- as.numeric(DT.loc$lat)
DT.loc$long <- as.numeric(DT.loc$long)

# подписи к объектам с гиперссылками
map.sites <- paste0(DT.loc$Наименование.объекта, '</br>',
                    DT.loc$Режим.работы, '</br>',
                    '<em>', DT.loc$Контактный.телефон, '</em>')

# создаём виджет с картой
myMap <- DT.loc %>% leaflet(width = 800, height = 800) %>% 
addTiles() %>% addMarkers(icon = pharm.icon, popup = map.sites)

# рисуем карту
myMap