使用循环从r中的不同数据帧在传单地图上添加标记
我使用r中的复选框来选择从不同数据集(例如:游乐场、图书馆、公园)绘制的位置。由于lat和long存在于不同的数据集中,我想我可以使用for循环根据选中的复选框更新基本传单图。然而,我并没有在这方面取得太大的成功,因为地图根本就没有出现。我也没有错。我还附上了代码片段。如果有人能在这方面帮助我,那将是非常有帮助的。如果有人能提出另一种方法来完成事情,我将不胜感激 ###################用户界面 ###########服务器使用循环从r中的不同数据帧在传单地图上添加标记,r,shiny,r-leaflet,R,Shiny,R Leaflet,我使用r中的复选框来选择从不同数据集(例如:游乐场、图书馆、公园)绘制的位置。由于lat和long存在于不同的数据集中,我想我可以使用for循环根据选中的复选框更新基本传单图。然而,我并没有在这方面取得太大的成功,因为地图根本就没有出现。我也没有错。我还附上了代码片段。如果有人能在这方面帮助我,那将是非常有帮助的。如果有人能提出另一种方法来完成事情,我将不胜感激 ###################用户界面 ###########服务器 colm_其他=无功({ 输入$program\u其他
colm_其他=无功({
输入$program\u其他
})
parks_数据=无功({
if(输入$neighborhoods\u other!=“未选择邻居”){
a=公园[其中(公园[,“nbhd_名称”]==输入$neighborhoods_other),]
}
否则{
a=公园
}
报税表(a)
})
库\u数据=反应性({
if(输入$neighborhoods\u other!=“未选择邻居”){
a=库[其中(库[,“nbhd_名称”]==输入$neighborhoods_other),]
}
否则{
a=图书馆
}
报税表(a)
})
输出$mymap_other=renderLeaflet({
公园数据1=公园数据()
库\数据1=库\数据()
m=传单()%%>%setView(lng=-104.991531,lat=39.742043,zoom=10)%%>%addTiles()
for(col in colm_other()){
如果(列=“公园”){
打印(打印头(parks_数据1))
map%addMarkers(map=m,lng=jitter(公园数据1$long),lat=jitter(公园数据1$lat))
}
如果(列==“库”){
打印(col)
map%>%addMarkers(map,lng=jitter(库\数据1$long),lat=jitter(库\数据1$lat))
}
}
请考虑进一步详细解释您的问题陈述。我有4个不同的数据集,其中包括图书馆、公园、游乐场和博物馆的位置。我希望有一个复选框,使我能够在传单地图上绘制这些资源的一个或任意组合的位置。复选框中的输入变量是d的名称ata集。我创建了一个循环,希望根据复选框中选择的输入数据集(代码的最后几行)更新地图。但是,我在应用程序中没有看到地图。我也没有收到错误。是否有其他方法更新循环中的传单?或者是否有其他方法可以解决此问题?您应该提供一个可复制的示例,以便人们可以测试您的代码。
tabPanel("Other out-of-school resources",
fluidPage(sidebarLayout(
sidebarPanel(
selectInput("neighborhoods_other", "Select the neighborhood from the dataset", choices = c("No neighborhood selected", neighborhoods_other)),
br(),
checkboxGroupInput("program_other", "Select the type of the program", choices = c("Parks", "Playgrounds", "Rec Centers", "Libraries",
"Museums", "Fields"), selected = "Parks"),
br(),
radioButtons("demographics_other", "Select the demographics variable", choices = c("Median household income ($)","High school degree or equivalent(%)",
"Hispanic population (%)", "Non native English speakers (%)"), selected = character(0)),
br()
),
mainPanel(
tabsetPanel(type = "tab",
tabPanel("Map",
leafletOutput("mymap_other", height = 650)),
tabPanel("Data",
DT::dataTableOutput("datatable_other")),
tabPanel("Summary analysis")
)
))
)
)
colm_other = reactive({
input$program_other
})
parks_data = reactive({
if(input$neighborhoods_other != "No neighborhood selected" ) {
a = parks[which(parks[, "nbhd_name"] == input$neighborhoods_other),]
}
else {
a = parks
}
return(a)
})
libraries_data = reactive({
if(input$neighborhoods_other != "No neighborhood selected" ) {
a = libraries[which(libraries[, "nbhd_name"] == input$neighborhoods_other),]
}
else {
a = libraries
}
return(a)
})
output$mymap_other = renderLeaflet({
parks_data1 = parks_data()
libraries_data1 = libraries_data()
m = leaflet() %>% setView(lng = -104.991531, lat = 39.742043,zoom = 10) %>% addTiles()
for (col in colm_other()){
if(col == "Parks"){
print(head(parks_data1))
map <- m %>% addMarkers(map = m, lng = jitter(parks_data1$long), lat = jitter(parks_data1$lat))
}
if(col == "Libraries"){
print(col)
map %>% addMarkers(map, lng = jitter(libraries_data1$long), lat = jitter(libraries_data1$lat))
}
}