Я пытаюсь построить европейские страны, используя буклет, но значения, присвоенные странам, неверны. Цель состоит в том, чтобы создать картографическую карту Европы, в которой каждой стране присвоено определенное значение. Я использовал образец исходного набора данных, и на рисунке «Текущий результат» видно, что Швеция получает значение Германии. Как я могу присвоить правильное значение правильному GEO (страна)
require(shiny)
require(leaflet)
require(htmltools)
require(ggplot2)
require(highcharter)
require(maps)
require(dplyr)
rm(list = ls())
df <- data.frame(GEO = c("Belgium", "Germany" ,
"France","Italy","Sweden","Slovakia" ),
PRODUCT = c("Total petroleum products"),
TIME = c(1990),
Value = c(18345, 126544, 88659,90069,14670,4974),
stringsAsFactors = FALSE)
ui <- fluidPage(
titlePanel("Energy consumption in Europe"),
tabsetPanel(
tabPanel("Map overview", sidebarLayout(
sidebarPanel(selectInput("Type", "Select Type", choices =
unique(df$PRODUCT), selected = ""),
selectInput("Year", "Select Year", choices =
unique(df$TIME), selected = "")),
mainPanel(leafletOutput("firstMap", height = 800)
)))
)
)
server <- function(input, output) {
output$firstMap <- renderLeaflet({
df_tmp1<-reactive({
subset(df, df$PRODUCT==input$Type & df$TIME==input$Year)
})
df_tmp <-df_tmp1()
bounds <- map("world", unique(df_tmp$GEO), fill = TRUE, plot = FALSE)
bounds$Value <- df_tmp$Value
pal <- colorNumeric("Blues", df$Value)
leaflet(bounds)%>%
addTiles()%>%
addPolygons(stroke = TRUE,
smoothFactor = 0.5,
fillOpacity=0.8,
fillColor = ~pal(df_tmp$Value),
color = "black",
opacity = 0.7,
weight = 1,
popup = paste(bounds$names, "<br>", "Value: ",
df_tmp$Value, "KTOE"
)
)%>%
addLegend("topright", pal = pal, values = df$Value,
title = "Consumption in KTOE",
labels = c(min(df$Value), max(df$Value)),
opacity = 0.6
)
})
}
shinyApp(ui, server)
Токовый выход
Что мне здесь не хватает?