2015-10-15 81 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()

相关问题