R Shiny:通过多个用户输入过滤数据表文本列的行

Rshiny: Filter rows of Datatable text column by multiple user inputs

我是 shiny 的新手,想知道是否可以做些什么。 我想允许用户输入文本搜索词和 return 用户搜索词出现在描述中的数据框行。

由于我是新来的,我不确定描述我遇到的问题的最佳和最清晰的方式,因此如果需要我可以添加更多信息。如有任何建议,我们将不胜感激。谢谢。

您可以在搜索输入中使用正则表达式,方法是将选项 search$regex 设置为 TRUE:

datatable(iris[c(1,2,51,52,101,102),], 
          options = 
            list(
              search = list(regex = TRUE)
            )
)

另一个解决方案(点击 'Return' 到 运行 搜索):

js <- c(
  "function(settings){",
  "  var instance = settings.oInstance;",
  "  var table = instance.api();",
  "  var input = instance.parent().find('.dataTables_filter input');",
  "  input.off('keyup search input').on('keypress', function(e){",
  "    if(e.which == 13){",
  "      var keywords = input.val().split(' '), filter ='';",
  "      for(var i=0; i<keywords.length; i++){",
  "        filter = (filter !== '') ? filter + '|' + keywords[i] : keywords[i];",
  "      }",
  "      table.search(filter, true, false).draw();",
  "    }",
  "  });",
  "}"
)


datatable(iris[c(1,2,51,52,101,102),], 
          options = 
            list(initComplete = JS(js)
          )
)