【问题标题】:Error from using SpatialPolygonDataFrame in a reactive function in shiny.在闪亮的反应函数中使用 SpatialPolygonDataFrame 时出错。
【发布时间】:2016-01-13 15:50:56
【问题描述】:

我遇到了错误

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)

【问题讨论】:

    标签: shiny leaflet rgdal


    【解决方案1】:

    anything() &lt;- 2 语法无效,因此出现错误。您不能将某些东西分配给看起来像函数调用(没有参数)。

    您可能在这两个地方都需要states 而不是states()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-13
      • 2021-11-26
      • 1970-01-01
      • 1970-01-01
      • 2018-02-17
      • 2021-01-04
      • 1970-01-01
      相关资源
      最近更新 更多