根据选定的 tabItem 创建反应式数据框
Create reactive data frame dependent on selected tabItem
在我的 shinyApp 中,我有一个数据框,我希望它根据所选的选项卡做出反应。
我尝试了以下方法,但它不起作用。还有其他想法吗?
library(shiny)
library(shinydashboard)
library(tidyverse)
data = tibble(colOne=c(1:10), colTwo=c(rep(1, 5), rep(2, 5)))
header = dashboardHeader(disable = TRUE)
sidebar = dashboardSidebar(
sidebarMenu(
menuItem(text = "Name for first Tab", tabName = "start"),
menuItem(text = "Name for second Tab", tabName = "1"),
menuItem(text = "Name for third Tab", tabName = "2")
)
)
body = dashboardBody(
tabItems(
tabItem(tabName = "start"),
tabItem(tabName = "1"),
tabItem(tabName = "2")))
ui = dashboardPage(header = header, sidebar = sidebar, body = body)
server = function(input, output, session){
reactive_data = reactive({
data %>% filter(colTwo == input$tabName)
}
shinyApp(ui, server)
您可以将 id
添加到您的 sidebarMenu
。然后,这可用于对所选菜单进行更改。这应该是一个工作示例:
library(shiny)
library(shinydashboard)
library(tidyverse)
data = tibble(colOne=c(1:10), colTwo=c(rep(1, 5), rep(2, 5)))
header = dashboardHeader(disable = TRUE)
sidebar = dashboardSidebar(
sidebarMenu(id = "tab",
menuItem(text = "Name for first Tab", tabName = "start"),
menuItem(text = "Name for second Tab", tabName = "1"),
menuItem(text = "Name for third Tab", tabName = "2")
)
)
body = dashboardBody(
tabItems(
tabItem(tabName = "start"),
tabItem(tabName = "1"),
tabItem(tabName = "2")))
ui = dashboardPage(header = header, sidebar = sidebar, body = body)
server = function(input, output, session){
observe({
print(reactive_data())
})
reactive_data <- reactive({
data %>%
filter(colTwo == input$tab)
})
}
shinyApp(ui, server)
在我的 shinyApp 中,我有一个数据框,我希望它根据所选的选项卡做出反应。 我尝试了以下方法,但它不起作用。还有其他想法吗?
library(shiny)
library(shinydashboard)
library(tidyverse)
data = tibble(colOne=c(1:10), colTwo=c(rep(1, 5), rep(2, 5)))
header = dashboardHeader(disable = TRUE)
sidebar = dashboardSidebar(
sidebarMenu(
menuItem(text = "Name for first Tab", tabName = "start"),
menuItem(text = "Name for second Tab", tabName = "1"),
menuItem(text = "Name for third Tab", tabName = "2")
)
)
body = dashboardBody(
tabItems(
tabItem(tabName = "start"),
tabItem(tabName = "1"),
tabItem(tabName = "2")))
ui = dashboardPage(header = header, sidebar = sidebar, body = body)
server = function(input, output, session){
reactive_data = reactive({
data %>% filter(colTwo == input$tabName)
}
shinyApp(ui, server)
您可以将 id
添加到您的 sidebarMenu
。然后,这可用于对所选菜单进行更改。这应该是一个工作示例:
library(shiny)
library(shinydashboard)
library(tidyverse)
data = tibble(colOne=c(1:10), colTwo=c(rep(1, 5), rep(2, 5)))
header = dashboardHeader(disable = TRUE)
sidebar = dashboardSidebar(
sidebarMenu(id = "tab",
menuItem(text = "Name for first Tab", tabName = "start"),
menuItem(text = "Name for second Tab", tabName = "1"),
menuItem(text = "Name for third Tab", tabName = "2")
)
)
body = dashboardBody(
tabItems(
tabItem(tabName = "start"),
tabItem(tabName = "1"),
tabItem(tabName = "2")))
ui = dashboardPage(header = header, sidebar = sidebar, body = body)
server = function(input, output, session){
observe({
print(reactive_data())
})
reactive_data <- reactive({
data %>%
filter(colTwo == input$tab)
})
}
shinyApp(ui, server)