代码之家  ›  专栏  ›  技术社区  ›  Dayo Salam

当参数有数据[关闭]时,R一直说参数为空

r
  •  -1
  • Dayo Salam  · 技术社区  · 10 月前
        # TOGO
        # Reading each GeoJSON file and storing in a variable
        gis_data_TOGO_ADM1 <- geojsonsf::geojson_sf("C:/Users/HP/OneDrive/Documents/Vitalera/data/gis/ecowas/togo/geoBoundaries-TGO-ADM1.geojson")
        gis_data_TOGO_ADM2 <- geojsonsf::geojson_sf("C:/Users/HP/OneDrive/Documents/Vitalera/data/gis/ecowas/togo/geoBoundaries-TGO-ADM2.geojson")
        gis_data_TOGO_Airport <- geojsonsf::geojson_sf("C:/Users/HP/OneDrive/Documents/Vitalera/data/gis/ecowas/togo/togo_airport.geojson")
        # gis_data_TOGO_Buildings <- geojsonsf::geojson_sf("C:/Users/HP/OneDrive/Documents/Vitalera/data/gis/ecowas/togo/togo_buildings.geojson")
        gis_data_TOGO_Education_Facilities <- geojsonsf::geojson_sf("C:/Users/HP/OneDrive/Documents/Vitalera/data/gis/ecowas/togo/togo_education_facilities.geojson")
        gis_data_TOGO_Financial_Services <- geojsonsf::geojson_sf("C:/Users/HP/OneDrive/Documents/Vitalera/data/gis/ecowas/togo/togo_financial_services.geojson")
        gis_data_TOGO_Healthsites <- geojsonsf::geojson_sf("C:/Users/HP/OneDrive/Documents/Vitalera/data/gis/ecowas/togo/togo_healthsites.geojson")
        gis_data_TOGO_Health_Facilities <- geojsonsf::geojson_sf("C:/Users/HP/OneDrive/Documents/Vitalera/data/gis/ecowas/togo/togo_health_facilities.geojson")
        gis_data_TOGO_Populated_Places <- geojsonsf::geojson_sf("C:/Users/HP/OneDrive/Documents/Vitalera/data/gis/ecowas/togo/togo_populated_places.geojson")
        gis_data_TOGO_Railways <- geojsonsf::geojson_sf("C:/Users/HP/OneDrive/Documents/Vitalera/data/gis/ecowas/togo/togo_railways.geojson")
        gis_data_TOGO_Road <- geojsonsf::geojson_sf("C:/Users/HP/OneDrive/Documents/Vitalera/data/gis/ecowas/togo/togo_road.geojson")
        gis_data_TOGO_Sea_Ports <- geojsonsf::geojson_sf("C:/Users/HP/OneDrive/Documents/Vitalera/data/gis/ecowas/togo/togo_sea_ports.geojson")
        gis_data_TOGO_Waterways <- geojsonsf::geojson_sf("C:/Users/HP/OneDrive/Documents/Vitalera/data/gis/ecowas/togo/togo_waterways.geojson")
        
        
        
        
        
        
        # Define UI
        ui <- dashboardPage(
          dashboardHeader(title = "Interactive Map Dashboard"),
          dashboardSidebar(
            # Add a region selector dropdown
            selectInput("region", "Select Region", 
                        choices = c("Savanes Region", "Kara Region", "Plateaux Region", "Maritime Region", "Centrale Region"),
                        selected = "Savanes Region"),
            
            sidebarMenu(
              menuItem("Map", tabName = "map", icon = icon("map")),
              
              # Dynamically generated checkbox inputs based on selected region
              uiOutput("region_checkboxes")
            )
          ),
          dashboardBody(
            tabItems(
              tabItem(
                tabName = "map",
                fluidRow(
                  box(
                    title = "Interactive Map",
                    status = "primary",
                    solidHeader = TRUE,
                    leafletOutput("map", height = "800px"), width = 12
                  )
                )
              )
            )
          )
        )
        
        
        # Define Server Logic
        server <- function(input, output, session) {
          
          # Define data for each region
          region_data <- list(
            "Savanes Region" = list(
              # Airport = gis_data_TOGO_Airport[gis_data_TOGO_Airport$state == "Savanes Region", ],
              Education_Facilities = gis_data_TOGO_Education_Facilities[gis_data_TOGO_Education_Facilities$state == "Savanes Region", ],
              Healthsites = gis_data_TOGO_Healthsites[gis_data_TOGO_Healthsites$state == "Savanes Region", ],
              Financial_Services =gis_data_TOGO_Financial_Services[gis_data_TOGO_Financial_Services$state == "Savanes Region", ],
              Health_Facilities = gis_data_TOGO_Health_Facilities[gis_data_TOGO_Health_Facilities$state == "Savanes Region", ],
              Populated_Places = gis_data_TOGO_Populated_Places[gis_data_TOGO_Populated_Places$state == "Savanes Region", ],
              # Railways = gis_data_TOGO_Railways[gis_data_TOGO_Railways$state == "Savanes Region", ],
              Road = gis_data_TOGO_Road[gis_data_TOGO_Road$state == "Savanes Region", ],
              Sea_Ports = gis_data_TOGO_Sea_Ports[gis_data_TOGO_Sea_Ports$state == "Savanes Region", ],
              Waterways = gis_data_TOGO_Waterways[gis_data_TOGO_Waterways$state == "Savanes Region", ],
              
            ),
    "Kara Region" = list(
          Airports = gis_data_TOGO_Airport[gis_data_TOGO_Airport$state == "Kara Region", ],
          Education_Facilities = gis_data_TOGO_Education_Facilities[gis_data_TOGO_Education_Facilities$state == "Kara Region", ],
          Healthsites = gis_data_TOGO_Healthsites[gis_data_TOGO_Healthsites$state == "Kara Region", ],
          Financial_Services = gis_data_TOGO_Financial_Services[gis_data_TOGO_Financial_Services$state == "Kara Region", ],
          Health_Facilities = gis_data_TOGO_Health_Facilities[gis_data_TOGO_Health_Facilities$state == "Kara Region", ],
          Populated_Places = gis_data_TOGO_Populated_Places[gis_data_TOGO_Populated_Places$state == "Kara Region", ],
          # Railways = gis_data_TOGO_Railways[gis_data_TOGO_Railways$state == "Kara Region", ],
          Road = gis_data_TOGO_Road[gis_data_TOGO_Road$state == "Kara Region", ],
          # Sea_Ports = gis_data_TOGO_Sea_Ports[gis_data_TOGO_Sea_Ports$state == "Kara Region", ],
          Waterways = gis_data_TOGO_Waterways[gis_data_TOGO_Waterways$state == "Kara Region", ],
        ),
          
          output$map <- renderLeaflet({
            leaflet(gis_data_TOGO_ADM1[gis_data_TOGO_ADM1$shapeGroup == "TGO", ]) %>%
              addProviderTiles(providers$CartoDB.Positron) %>%  # A clean base map
              addPolygons(
                fillColor = "antiquewhite",
                color = "gray80",
                weight = 1,
                data = gis_data_TOGO_ADM1[gis_data_TOGO_ADM1$shapeGroup == "TGO", ],
                label = ~shapeGroup,
                group = "Base Layer"
              )
          })
          
          
          
        }
        
        
        # Run the application
        shinyApp(ui = ui, server = server)
    

    在上面的代码中,我试图选择区域,然后为该特定区域选择数据点,并将其显示为闪亮的GIS仪表板。 因此,我根据代码中的区域过滤了数据点。 每当我尝试运行它时,它都会显示错误

    列表错误(机场= gis_data_TOGO_机场[gis_data_TOGO_机场$state==:参数9 为空

    然后我评论这一行,它就会带着同样的错误进入下一个参数,直到它们没有可调用的参数为止。 但所有的数据都是可用的。 如果你能帮我提供一个解决方案,我会很乐意的,这样我就可以创建一个漂亮的国家地理信息系统

    1 回复  |  直到 10 月前
        1
  •  -1
  •   user2554330    10 月前

    您收到该消息是因为您定义的最后一行 "Savanes Region" :

              Waterways = gis_data_TOGO_Waterways[gis_data_TOGO_Waterways$state == "Savanes Region", ],        
    ),
    

    表达式后有一个额外的逗号 Waterways . 您在结尾处遇到了同样的问题 "Kara Region" .

    删除这些行末尾的逗号,错误应该会消失。

    @MrFlick在评论中给出了一个简洁的解释:“在R中,list(a=1,)被认为是无效的。在调用list()时不能有空值。你会得到同样的“argument is empty”错误。确保在对list()的调用中没有多余的逗号。”