我有一个数据表,在我闪亮的仪表板中使用DT:: rendertableOutput
进行渲染。列是A
,B
,C
,D
。现在我想在打开Shiny应用程序时只显示列A
和B
以及稍后如果我单击显示的数据表上的特定行我需要弹出一个显示数据的弹出窗口列C
和D
中的行。
以下是我的数据框:
> df
A B C D
A1 B1 C1 D1
A2 B2 C2 D2
条件:
A
和B
。 row 1
后,row 1
列的C
和D
会显示为具有close
按钮的弹出式窗口。当显示其他行时,这会继续相似。答案 0 :(得分:3)
让我们尝试将其添加到服务器代码中。基本上,当您选择特定行并显示其余数据时,我们会触发一个模式对话框。
require(dplyr)
#Here's our table:
tbl <- data.frame(A= c('A1','A2'),
B= c('B1','B2'),
C = c('C1','C2'),
D = c('D1','D2'))
#The dt output code
output$my_table <- renderDataTable({
datatable(tbl %>% select(A,B),selection='single')
})
#reactive table based on the selected row
tbl_reactive <- reactive({
tbl[as.numeric(input$my_table_rows_selected[1]),]
})
#here's the table displayed in our modal
output$modal_table <- renderDataTable({
tbl_reactive()
})
#our modal dialog box
myModal <- function(failed=FALSE){
modalDialog(
dataTableOutput('modal_table'),
easyClose = TRUE
)
}
#event to trigger the modal box to appear
observeEvent(input$my_table_rows_selected,{
showModal(myModal())
})