R闪亮仪表板中的反应式下拉菜单
新到这里。我正在创建一个仪表板,有不同的类别和子类别。我想做的是: 当屏幕加载时,我希望所有类别和子类别都可供选择,但如果我选择类别“1”,则只有“sub1”和“sub2”可供选择。所以就像它被分类过滤一样。 如何在Shining中的服务器文件中实现这一点? 我的代码的一个简单示例如下:(服务器是sudo代码)R闪亮仪表板中的反应式下拉菜单,r,shiny,shinydashboard,R,Shiny,Shinydashboard,新到这里。我正在创建一个仪表板,有不同的类别和子类别。我想做的是: 当屏幕加载时,我希望所有类别和子类别都可供选择,但如果我选择类别“1”,则只有“sub1”和“sub2”可供选择。所以就像它被分类过滤一样。 如何在Shining中的服务器文件中实现这一点? 我的代码的一个简单示例如下:(服务器是sudo代码) 库(闪亮) 图书馆(shinydashboard) 用户界面 UI --> dashboardSidebar( sidebarMenu(
库(闪亮)
图书馆(shinydashboard)
用户界面
UI -->
dashboardSidebar(
sidebarMenu(
menuItem("CSF2", tabName = "CSF2", icon=icon("bar-chart")),
selectInput("category", "Select a category", c("1", "2"),
selectInput("subcategory", "Select a subcategory", c("sub1", "sub2", "sub3" "sub4"),
)),
server--->
shinyServer(function(input,output){
if (category_selected == 1){subcategoryOptions= c(sub1,sub2)}
if (category_selected == 2){subcategoryOptions= c(sub3,sub4)}
}
library(shiny)
library(shinydashboard)
UI <- dashboardSidebar(
sidebarMenu(
menuItem("CSF2", tabName = "CSF2", icon = icon("bar-chart")),
selectInput("category", "Select a category", c("1", "2")),
selectInput("subcategory", "Select a subcategory",
c("sub1", "sub2", "sub3", "sub4"))
)
)
server <- function(input, output, session) {
observe({
updateSelectInput(
session, "subcategory", "Select a subcategory",
choices = switch(input$category,
"1" = c("sub1", "sub2"),
"2" = c("sub3", "sub4"))
)
})
}
shinyApp(UI, server)