【问题标题】:How to do exact search in Shiny DataTables column如何在 Shiny DataTables 列中进行精确搜索
【发布时间】:2017-07-05 07:40:11
【问题描述】:

我有以下自给自足的 Shiny 脚本:

mydf <- data.frame(commonality=c("common","uncommon","common","uncommon","common"),value=c(1,2,3,4,5))

library(shiny)
shinyApp(
  ui = fluidPage(DT::dataTableOutput('tbl')),
  server = function(input, output) {
    output$tbl = DT::renderDataTable(
      mydf, options = list(lengthChange = FALSE)
    )
  }
)

产生这个:

我想做的是进行精确搜索。例如当我输入common时, 值uncommon 不应出现。我该怎么做?

【问题讨论】:

  • 我们看不到图片!
  • @R.B 请重新加载。我可以在我的部分看到它。否则请看这里i.stack.imgur.com/gevKx.jpg
  • 这是两个问题:1.底层的JS小部件能不能做你想做的事[datatables.net/reference/api/search()]?和 2. 如果可以的话,我怎样才能通过 Shiny 获得正确的选项到生成的 JS 中?
  • 您可以使用过滤器:library(shiny) shinyApp( ui = fluidPage(DT::dataTableOutput('tbl')), server = function(input, output) { output$tbl = DT::renderDataTable( mydf,filter = 'top', options = list(lengthChange = T) ) } )
  • @R.B 把它变成一个答案:)

标签: r datatables shiny


【解决方案1】:

你可以使用DT包的过滤器:

 library(shiny) 
    shinyApp( ui = fluidPage(DT::dataTableOutput('tbl')), 
    server = function(input, output) { 
    output$tbl = DT::renderDataTable( mydf,filter = 'top', options = list(lengthChange = T, dom = 'tip') )
      })

结果如下所示:

【讨论】:

  • 您可以从过滤器中运行搜索,它对我有用
  • 有没有办法从我的 OP 中的默认 Search 过滤器中做到这一点?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-21
  • 2013-08-13
相关资源
最近更新 更多