Добавить маркеры по названию страны буклет R - PullRequest
0 голосов
/ 20 февраля 2020

Я нахожусь на Rstudio и хочу добавить маркер на основе названия страны.

Переменная, которая содержит число вхождений в каждой стране, называется cnt_country, которая находится в таблице ниже

Morocco                            57381
France                             35729
Tunisia                            85563
Saudi Arabia                       10816
Turkey                             6725

Однако, когда я использую буклет (cnt_country)%>% addTiles ()%> % addMarkers () Я получаю сообщение об ошибке: не могу определить длинную информацию.

Существует ли способ, чтобы листовка добавила маркеры, основанные на названии страны?

1 Ответ

1 голос
/ 20 февраля 2020

Чтобы leaflet обнаружил маркеры на карте, вам необходимо указать геокоординаты. Если вы не возражаете прикрепить маркеры к столице каждой страны, вы можете получить эти геокоординаты из фрейма данных world.cities в пакете maps.

library(dplyr)
library(leaflet)
library(maps)

# ingest your data
cnt_country <- read.table(text = "Morocco,57381\nFrance,35729\nTunisia,85563\nSaudi Arabia,10816\nTurkey,6725",
                          sep = ",",
                          header = FALSE,
                          stringsAsFactors = FALSE,
                          col.names = c("country", "n"))

# import the world.cities data frame from 'maps'
data(world.cities)

# merge the desired cols from that data frame with yours by country
df <- world.cities %>%
    filter(capital == 1) %>%
    dplyr::select(country = country.etc, lat, lng = long) %>%
    left_join(cnt_country, ., by = "country")

# now map the result
leaflet(df)%>%
    addTiles()%>%
    addMarkers(label = ~n) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...