Реактивная функция не работает для создания Choropleth Map - PullRequest
0 голосов
/ 13 января 2019

Я пытаюсь создать карту со шрифтом, используя googleVis в блестящем. Когда я создаю реактивную функцию, которая выбирает конкретные данные в соответствии с вводом, я получаю ошибку:

Ошибка в as.vector: невозможно привести тип 'closure' к вектору типа 'list'

Используемые данные являются образцом исходного набора данных.

Кто-нибудь может мне помочь решить эту проблему?

df <- data.frame(GEO = c("Belgium", "Germany" , 
                         "France","Italy","Sweden","Slovakia" ),
                 PRODUCT = c("Total petroleum products","Gas"),
                 TIME = c(1990),
                 Value = c(18345, 126544, 88659,90069,14670,4974), 
                 stringsAsFactors = FALSE)


library(shiny)
library(shinydashboard)
library(googleVis)

ui <- fluidPage(titlePanel("Energy consumption in Europe"),

                dashboardPage(
                  dashboardHeader(),
                  dashboardSidebar(width = 240,
                                   br(),
                                   br(),
                                   br(),
                                   selectizeInput("Type",
                                                  label = em("Select Type", style="text-align:center;color:#FFA319;font-size:150%"),
                                                  choices = unique(df$PRODUCT),
                                                  selected = "")),
                  dashboardBody(htmlOutput("firstMap"))
                ))

server <- function(input, output) {

  data_selected<-reactive({
    df[df$PRODUCT%in%input$Type]
  })


  output$firstMap <- renderGvis({
    data(data_selected)
    map<-gvisGeoChart(data_selected,"GEO", "Value",
                      options=list(region="150"))


    return(map)
  })
}

shinyApp(ui, server)

1 Ответ

0 голосов
/ 13 января 2019
server <- function(input, output) {

data_selected<-reactive({
df[df$PRODUCT%in%input$Type,]
 })


 output$firstMap <- renderGvis({
 req(data_selected())
 map<-gvisGeoChart(data_selected(),"GEO", "Value",
                  options=list(region="150"))


     return(map)
 })
}

shinyApp(ui, server)

Попробуйте это.

...