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)
)
)
我是 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)
)
)