Вы можете выбрать, какие строки, столбцы, ячейки щелкаются с помощью DT
, есть отличная документация по использованию DT с Shiny .После этого вы можете отфильтровать таблицу клиентов и отправить пользователя на другую вкладку, используя updateTabsetPanel
.
Пример ниже.
library(DT)
library(shiny)
df <- data.frame(
customer = LETTERS[1:5],
id = seq(1, 5)
)
ui <- navbarPage(
"Stackoverflow",
id = "tabs", # give id to use updateTabsetPanel
tabPanel(
"shop",
h2("Customers are below"),
DTOutput("table")
),
tabPanel(
"customer",
uiOutput("customer")
)
)
server <- function(input, output, session){
output$table <- renderDT(df, selection = "single")
observeEvent(input$table_rows_selected, {
updateTabsetPanel(session = session, inputId = "tabs", selected = "customer")
})
output$customer <- renderUI({
c <- df[input$table_rows_selected, "customer"]
h2(paste("Hi I'm customer", c, "!"))
})
}
shinyApp(ui, server)