私は、UI側でselectInputで選択された変数を使用してサーバー側にマップデータを取り込む方法を理解しようとしています。 filteredDataによって表示される変数を手動で設定することで成功しましたが、動的に変更できる入力に対しては正しく機能しません。ユーザーの入力に基づいてマップ上に表示するためにデータをサブセット化するのに役立つ機能/ソリューションがありますか?マップへのselectInput値の受け渡し
UI.R
districts <- readOGR("location",layer)
metadata <- read.csv("metadata.csv")
#Prepare list of values for the selectInput boxes
COMMUNITYSAFETY<-as.list(metadata$variable[metadata$group == "Community Safety"])
names(COMMUNITYSAFETY)=metadata$description[metadata$group == "Community Safety"]
##CONTINUED FOR REST OF SELECTINPUT BOXES
ui <- fluidPage(
titlePanel("Map"),
sidebarPanel(
selectInput("vr", "Would you like to show the variable by value or rank?",
c("Value" = "_v",
"Rank" = "_r")
),
selectInput("group", "Select Group:",
c("Community Safety" = "COMMUNITYSAFETY",
"Demographics" = "DEMOGRAPHICS",
"Healthy People and Environments" = "HEALTHY_PEOPLE_ENVM",
"Housing" = "HOUSING",
"Income and Employment" = "INCOME_EMPL",
"Lifelong Learning" = "LIFE_LEARNING",
"Transportation" = "TRANSPORTATION")),
#if user choses Community Safety
conditionalPanel(
condition = "input.group == 'COMMUNITYSAFETY'",
selectInput("var", "Community Safety Variables:",
COMMUNITYSAFETY)),
#repeat other conditional panels for inputs
mainPanel(
tabsetPanel(
tabPanel("Map", leafletOutput("map", height=800)),
tabPanel("Histogram")
))))
Server.R:
server <- function(input, output, session){
filteredData <- reactive({
subset(districts,select=input$var)
})
...
observe({
leafletProxy("map", data=districts) %>%
addPolygons(stroke=TRUE,
fillColor=pal(filteredData()),
color="black",
weight=.5)
})
}