Select 多个值并使用串扰取消选择数据帧的某些值

Select multiple values and unselect certain values of dataframe using crosstalk

我有下面这个闪亮的应用程序,我在其中使用 crosstalk 包在图表和 table 之间创建交互。我想问一下是否可以同时 select 多个柱状图以将 table 恢复到其初始形式,以及如何取消 select a无需单击另一个栏?

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", "D1", "D2"),
                    siz=c(2, 10, 2.5))
  
  shared_df <- SharedData$new(df, key = ~dose, group = "group")
  shared_df2 <- SharedData$new(df2, key = ~dose, 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)

当只select编辑了一个条并且在table中显示一行时,按住shift键并单击其他未select编辑的条以select 它和关联的数据行显示在 table 中。 select编辑完所有条后,将显示所有行。

此外,您可以 select 和 unselect 在 table 中的任意位置显示根据数据行 selected/unselected 的 selected/unselected 柱。