子集的shinyTable

时间:2014-02-20 14:33:18

标签: r shiny

我目前正在使用shinyTable,它是HandsonTable(https://github.com/trestletech/shinyTable)的shiny兼容实现。巧合的是,我意识到,如果我向渲染的logical添加data.frame列,则值将显示为可单击的复选框。我希望使用它来轻松地对表格进行子集化:

enter image description here

library(devtools)
# those versions are necessary to let shinyTable work with shiny
install_github( "shiny", "rstudio", ref="fcf963639e4839e5689665c257e7f488c9c34cc0" )
install_github( "shinyTable", "JackStat" )
library(shiny)
library(shinyTable)

runApp(list(
  ui = bootstrapPage( 
    htable( "tbl", clickId="tblClick", headers="provided")
  ),
  server = function(input, output) {
    output$tbl <- renderHtable({
      if( is.null( input$tbl ) ){
        return( data.frame( select = TRUE, value = 1:10  ) )
      } else{
        return( input$tbl[ input$tbl$select, ] )
      }
    })
  }
))

但是,取消选中复选框后,我会得到以下结果:

enter image description here

是否有人对shinyTable有经验并可以给我一个如何避免这种情况的建议?

可替换地:

让我创建子集表的任何其他(对于我的用户舒适的)方法?

1 个答案:

答案 0 :(得分:1)

在这种情况下少即是多

library(shiny)
library(shinyTable)

runApp(list(
  ui = bootstrapPage( 
    htable( "tbl", clickId="tblClick", headers="provided", readOnly = 'false')
  ),
  server = function(input, output) {
    output$tbl <- renderHtable({
      if( is.null( input$tbl ) ){
        return( data.frame( select = TRUE, value = 1:10  ) )
      }
    })

  }

))