Приведение класса S4 к вектору в выпадающем списке Shiny selectInput - PullRequest
0 голосов
/ 06 июля 2019

Я пытаюсь выяснить, как заставить мое приложение Shiny отображать подмножества (регионы штата Калифорния) файла GeoJSON (с данными о границах публичной водной системы) на основе выбора региона (10 вариантов) из боковой панели.выпадающее меню.

# global.R
library(shiny)
library(leaflet)
library(dplyr)
library(rgdal)

# bring in data from public water service areas

#service_areas <- readOGR("https://trackingcalifornia.org/geoserver/ows?service=wfs&version=1.1.0&request=GetFeature&typeName=water:service_areas&srsName=epsg:4326&outputFormat=json")

# break counties in regions (based on 2020 census)
superior_ca_counties <- c("BUTTE", "COLUSA", "EL DORADO", "GLENN", "LASSEN", "MODOC", "NEVADA", "PLACER","PLUMAS", "SACRAMENTO","SHASTA", "SIERRA", "SISKIYOU","SUTTER", "TEHAMA", "YOLO", "YUBA")
north_coast_counties <- c("DEL NORTE", "HUMBOLDT", "LAKE", "MENDOCINO", "NAPA", "SONOMA", "TRINITY")
sf_bay_area_counties <- c("ALAMEDA", "CONTRA COSTA", "MARIN", "SAN FRANCISCO", "SAN MATEO", "SANTA CLARA", "SOLANO")
nor_sj_valley_counties <- c("ALPINE", "AMADOR", "CALAVERAS", "MADERA", "MARIPOSA", "MERCED", "MONO", "SAN JOAQUIN", "STANISLAUS", "TUOLUMNE")
central_coast_counties <- c("MONTEREY", "SAN BENITO", "SAN LUIS OBISPO", "SANTA BARBARA", "SANTA CRUZ", "VENTURA")
so_sj_valley_counties <- c("FRESNO", "INYO", "KERN", "KINGS", "TULARE")
inland_empire_counties <- c("RIVERSIDE", "SAN BERNARDINO")
los_angeles_county <- c("LOS ANGELES")
orange_county <- c("ORANGE")
imperial_sd_counties <- c("IMPERIAL", "SAN DIEGO")


regions <- list(superior_ca_counties, north_coast_counties, sf_bay_area_counties, nor_sj_valley_counties, central_coast_counties, so_sj_valley_counties, inland_empire_counties, los_angeles_county, orange_county, imperial_sd_counties)

fnsubset<-function(regions, areas){
  areas<-subset(service_areas, service_areas$d_prin_cnty_svd_nm==regions)
}

regional_areas <- lapply(regions, fnsubset)

#ui.R  


ui<-fluidPage(
  titlePanel("Source Water Locations"),
  mainPanel(
  leafletOutput('map', height=1000)),
  sidebarPanel(
  fluidRow(
  column(12,
  helpText("Select Region of interest"),
  selectInput("region", "Region:", c("Region 1: Superior CA"= regional_areas[[1]],
                                       "Region 2: North Coast"= regional_areas[[2]],
                                        "Region 3 : San Francisco Bay Area"= regional_areas[[3]],
                                        "Region 4 : Northern San Joaquin Valley"= regional_areas[[4]],
                                        "Region 5: Central Coast" = regional_areas[[5]],
                                        "Region 6: Southern San Joaquin Valley"= regional_areas[[6]],
                                        "Region 7: Inland Empire" = regional_areas[[7]],
                                        "Region 8: Los Angeles County"= regional_areas[[8]],
                                        "Region 9: Orange County"= regional_areas[[9]],
                                        "Region 10: San Diego-Imperial"= regional_areas[[10]]))
  )
  )
  )
)


# server.R

# leaflet map
map <- leaflet()%>% addTiles()


shinyServer(
  function(input, output){

    output$map <- renderLeaflet({
      map  <- addPolygons(data=input$region, popup = ~pwsid)
      map  
    })

  }
)

Это сообщение об ошибке, которое я получаю: ОШИБКА: нет метода для приведения этого класса S4 к вектору. Есть ли другой способ получить доступ к региональным классам S4, не вызывая эту ошибку?

...