gpt4 book ai didi

r - 我可以在 r 传单 "map_shape_click"事件中使用数据表填充 box() 吗?

转载 作者:行者123 更新时间:2023-12-04 13:17:05 27 4
gpt4 key购买 nike

我已经在网上搜索了数周,试图找到一个示例或代码来说明我试图用我 Shiny 的应用程序 (shinydashboard) 完成的任务。我是 r 的新手,我开始认为我想做的事情是不可能的。我基本上有一个带有县多边形(shapefile)的传单 map ,我想使用多边形上的点击事件在 map 下方的 box() 上打开相关的数据表(物种表)。多边形数据是一个包含县名和县编号 id 的 shapefile。相关数据表包含县名、县#id 和每个县的物种名称(一对多关系)。我在想一些如何使用“map_shape_click”中的观察函数和县#id 在输出框()上按县呈现物种名称的表格。但是我不知道这是否可能。到目前为止,我已经能够创建 map 并使用点击事件在 box() 上捕获县名(见附图)。这个论坛很棒,我从帖子中学到了很多东西。感谢所有为社区做出贡献的人。如果您对我如何完成这项任务有任何建议,请告诉我,谢谢

JB

Example image

最佳答案

让我看看我是否做对了..

您可以通过捕获与点击的多边形相关的信息然后使用 id 对您的表格进行子集化来获得所需的结果

library(raster)
library(shiny)
library(leaflet)
library(RColorBrewer)
library(DT)

#species per region
mydata<-data.frame(myID=c("Iburengerazuba", "Iburasirazuba","Umujyi wa
Kigali","Umujyi wa Kigali", "Amajyaruguru", "Iburengerazuba",
"Amajyaruguru", "Amajyaruguru"),
myspec=c("virginiana", "setosa", "barbosa", "pelosa",
"pudica","pudica","pudica","pudica"))

#load in shapefiles for state
states <- getData("GADM", country = "rwa", level = 1)

#define color palettes for states
statePal <- colorFactor("Dark2", states@data$NAME_1)


shinyApp(

ui = fluidPage(
leafletOutput('myMap', width = "100%"),
br(),
DT::dataTableOutput("mytable", width = "100%")
),

server <- function(input, output, session){

output$myMap <- renderLeaflet({
leaflet() %>%
addTiles() %>%
addPolygons(data = states,
fillColor = ~statePal(states@data$NAME_1),
fillOpacity = 1,
color = "white",
stroke = T,
weight = 1,
layerId = states@data$NAME_1)
})

observeEvent(input$myMap_shape_click, {

#capture the info of the clicked polygon
click <- input$myMap_shape_click

#subset your table with the id of the clicked polygon
selected <- mydata[mydata$myID == click$id,]

#if click id isn't null render the table
if(!is.null(click$id)){
output$mytable = DT::renderDataTable({
selected
})
}
})
})

关于r - 我可以在 r 传单 "map_shape_click"事件中使用数据表填充 box() 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59342680/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com