Это минимальный воспроизводимый пример, необходимый для помощи:
ui.R
library(shiny)
fluidPage(
title = 'DataTables Information',
tabsetPanel(id = "tabs",
tabPanel("Cars overview",
h1("Cars overview"),
div("Click any cell"),
br(),
DT::dataTableOutput("x4")
)
)
)
Серверный скрипт:
server.R
library(shiny)
library(DT)
shinyServer(function(input, output, session) {
output$x4 = DT::renderDataTable({
DT::datatable(mtcars, selection = 'single')
}, server = TRUE)
observeEvent(input$x4_cells_clicked, {
print("Trigger")
value <- x4_cells_clicked$value
details <- mtcars %>%
filter(mpg == value)
appendTab(inputId = "tabs",
tabPanel(
DT::renderDataTable(DT::datatable(details), server = TRUE)
)
)
# Focus on newly created tab
updateTabsetPanel(session, "tabs", selected = "Car details")
})
})
То, что я пытаюсь выполнить sh, - это вызвать событие через ячейка щелкните по фрейму данных mtcars. Я хочу добавить вкладку при щелчке и отфильтровать кадр данных, который создается значением в ячейке, по которой щелкают. Я знаю, что в этом случае я учитываю только клик по столбцу mpg, но мне просто нужно посмотреть, как регистрируется клик по ячейке с помощью наблюдающего события и как использовать значение ячейки, по которому щелкнули, для фильтрации кадра данных, который создается в новая вкладка.