2015-10-15 77 views
1

我已經得到了錯誤在閃亮的反應函數中使用SpatialPolygonDataFrame時出錯。

Error in states() <- reactive({ : invalid (NULL) left side of assignment 

,當我創建一個閃亮的帶班SpatialPolygonsDataFrame返回對象反應功能。我舉了一個例子來說明這一點。

我可以單獨在小冊子中工作。並且,

我可以把整個對象放在一張閃亮的小冊子地圖中。

但是,如果你把它放在一個反應​​函數中,它會給出錯誤。我如何將這些空間物體加入閃亮的區域以傳遞給閃亮的傳單?

library(leaflet) 
library(sp) 
library(rgeos) 
library(rgdal) 
library(shiny) 

# From https://www.census.gov/geo/maps-data/data/cbf/cbf_state.html 
# Get the 20m file, unzip and put in your working directory. 
states <- readOGR("cb_2014_us_state_20m.shp", 
        layer = "cb_2014_us_state_20m", verbose = FALSE) 

neStates <- subset(states, states$STUSPS %in% c(
    "CT","ME","MA","NH","RI","VT","NY","NJ","PA" 
)) 

leaflet(neStates) %>% 
    addPolygons(
    stroke = FALSE, fillOpacity = 0.5, smoothFactor = 0.5, 
    color = ~colorQuantile("YlOrRd", states$AWATER)(AWATER) 
) 

ui <- shinyUI(bootstrapPage(
    tags$style(type = "text/css", "html, body {width:100%;height:100%}"), 
    leafletOutput("map", width = "100%", height = "100%"), 
    absolutePanel(class = "panel panel-default", 
       top = 1, right = 1, width = 300, 
    selectInput("which_state","which state", 
       c("CT","ME","MA","NH","RI","VT","NY","NJ","PA")) 
))) 

#input <- list(which_state = "CT") 
server <- function(input, output) { 
    states() <- reactive({ 
    subset(neStates,neStates$STUSPS == input$which_state) 
    }) 

    output$map <- renderLeaflet({ 
    leaflet() %>% 
    addPolygons(states()) 
    #addPolygons(data = neStates) 
    }) 
} 

shinyApp(ui,server) 

回答

0

anything() <- 2是無效的語法,因此錯誤。你不能指定一些看起來像函數調用的東西(沒有參數)。

您可能想在兩個地方都需要states而不是states()

相關問題