【问题标题】:shiny DT _row_last_clicked闪亮的 DT _row_last_clicked
【发布时间】:2016-10-25 10:10:59
【问题描述】:

我遇到了 _row_last_clicked 选项的问题,该选项是为在 rstudio DT 库的闪亮界面中创建的表提供的。我正在尝试在数据表中选择一行,对其进行修改并将其输出到闪亮的 ui.r。它适用于第一次选择,但是当我再次单击我之前选择的同一个表行时,_row_last_clicked 似乎仍然没有响应(=NULL?)。这是我要实现的目标的最小示例(ui.r 可能不相关):

# server.r-side:

table_x<-# ... loads the dataframe
redo_cal<-reactiveValues()  
redo_cal$a<-1

observe({ 
    redo_cal$a
    output$some_table <- DT::renderDataTable(           
        table_x,
        server = TRUE, # same problem with FALSE
        selection =c('single')
    )
})


observeEvent(
    input$some_table_row_last_clicked,{
    s<-input$some_table_row_last_clicked
    table_x[s,]<- # some reversible modifications based on the row selection ...
    redo_cal$a<-(redo_cal$a+1) # trigger above renderDataTable
})

对于 DT 的最新 github 版本以及在 CRAN 上找到的版本,该问题仍然存在。我已经阅读了几篇相关的帖子,但无法找到令人满意的解决方案。非常感谢您的帮助!

【问题讨论】:

  • 这是范围问题,您需要将 table_x 作为 reactiveValue(我的想法)
  • 谢谢!刚刚尝试了您的建议 - 但无法连续两次选择相同的 ui 表格行的问题仍然存在。
  • 所以你需要some_table_row_selected insted row_clicked
  • 谢谢。它的 some_table_rows_selected;但问题仍然存在。

标签: r shiny dt


【解决方案1】:

如果我理解你的话,你需要some_table_row_selected table_x(dd$d - 在我的例子中) 是 reactiveValues

查看示例 # some reversible modifications based on the row selection == log of x 每次选择此行中x的行值log-ed

library(shiny)
library(DT)
data=data.frame(x=1:10,y=2:11)

ui=shinyUI(
  fluidPage(
    DT::dataTableOutput("tt")
  )
)


server=shinyServer(function(input, output) {
  dd=reactiveValues(d=data)
  output$tt=DT::renderDataTable(
    datatable(
      dd$d,selection =c('single')
    )
    
    
  )
  observeEvent(input$tt_rows_selected,{
    
    dd$d[input$tt_rows_selected,1]<-log(dd$d[input$tt_rows_selected,1])
  })
})

shinyApp(ui,server)

在每个会话中,您的数据都会刷新

PS

最好的最小示例,任何人都可以复制\粘贴和测试。

【讨论】:

  • 太棒了,这行得通!我想我明白了。 observeEvent _rows_selected 触发 dd$d renderDataTable 的重新执行;这反过来重置_rows_selected;因此停留在一个条目中。在我最初的示例中,这没有重新执行。非常感谢,这让我发疯了......
猜你喜欢
  • 2020-09-18
  • 2018-12-03
  • 1970-01-01
  • 2016-01-02
  • 2018-09-07
  • 1970-01-01
  • 2019-07-28
  • 2020-11-20
  • 2018-07-02
相关资源
最近更新 更多