【发布时间】:2017-07-12 21:25:33
【问题描述】:
我在 R Shiny 中有一个数据表,其中一列“关键字”包含某些行的多个条目,用逗号分隔。我希望这些多个条目可以单独搜索。数据表的默认搜索功能将这些条目视为一个长的单个项目。
例如,第 2 行的关键字列值为“Keyword1,Keyword2”。我希望用户能够搜索“Keyword1”或“Keyword2”并找到第2行。目前,数据表中的默认搜索栏将此条目视为一项:“Keyword1,Keyword2”并且只允许人们搜索将“Keyword1,Keyword2”作为一个,联合项,而不是两个单独的值。
这是一个小而可重现的问题示例
library(shiny)
library(DT)
## Create an example dataset with 3 rows and 1 column
dat <- matrix(c("Keyword1", "Keyword1, Keyword2", "Keyword2"), nrow = 3, ncol = 1)
colnames(dat) <- "Keywords"
dat <- data.frame(dat)
ui <- shinyUI(
DT::dataTableOutput('ex1')
)
server <- shinyServer(function(input, output) {
output$ex1 <- DT::renderDataTable(
DT::datatable(dat, filter = "top")
)
})
shinyApp(ui = ui, server = server)
【问题讨论】:
-
也许您可以实现正则表达式搜索?将搜索词作为正则表达式(可能是固定的)传递并尝试在
Keywords中的任何位置找到匹配词。 -
你能做一个最小的可重现的例子吗,当我使用数据表时,它会给出你默认需要的行为。
标签: r filter datatable shiny dt