问题描述
我在下面有一个闪亮的应用程序,我在其中使用 crosstalk
包来创建图表和表格之间的交互。我想问一下是否可以同时选择多个条形以将表格恢复到其初始形式,以及如何取消选择一个条形而不必单击另一个条形?
library(shiny)
library(ggplot2)
library(plotly)
library(DT)
library(crosstalk)
ui <- fluidPage(
plotlyOutput("plt"),DT::dataTableOutput("dt")
)
server <- function(input,output) {
df <- data.frame(dose=c("D0.5","D1","D2"),len=c(4.2,10,29.5))
df2 <- data.frame(dose=c("D0.5",siz=c(2,2.5))
shared_df <- SharedData$new(df,key = ~dose,group = "group")
shared_df2 <- SharedData$new(df2,group = "group")
output$plt<-renderPlotly({
# Basic barplot
p <- ggplot(data=shared_df,aes(x=dose,y=len)) +
geom_bar(stat="identity")
ggplotly(p)
})
output$dt<-DT::renderDataTable({
shared_df2
},server = FALSE)
}
shinyApp(ui,server)
解决方法
当只有一个栏被选中并且表格中显示一行时,按住shift键并单击其他未选中的栏将其选中,关联的数据行将显示在表格中。选择所有条形后,将显示所有行。
此外,您可以选择和取消选择表格中的任意位置,以根据选中/取消选中的数据行显示选中/取消选中的条。