Shiny 中 DT table 中的多关键字字段

Multi-keywords field in a DT table in Shiny

我有一个 table,每个条目都有一个关键字字段链接,许多条目有多个关键字。 关键字目前由分号分隔,如下例所示。

author  keywords
Shaw    Anticyclonic eddy; Arctic halocline
Eddie   Nonhydrostatic modeling

是否可以独立对待它们,特别是在搜索一个 DT package 的 table 时,显示它存在的每个条目?

例如,我希望用户能够搜索 "Anticyclonic eddy" 或 "Arctic halocline"。 datatables 中的默认搜索框将此条目视为一项:"Anticyclonic eddy; Arctic halocline",但我希望它是两个独立的、可单独搜索的项目。

我应该怎么做?

您并不完全清楚您希望如何搜索文本,或者您希望从中返回什么,因此示例输出会很好。

但是,根据您的描述,DT 顶部的 'search' 框听起来像是为您完成的

但是,如果你想自己控制它产生一个单独的table,你可以这样做:

server.R

library(shiny)
library(shinydashboard)
library(DT)

dt <- data.frame(author = c("Shaw", "Eddie"),
                 keywords = c("Anticyclonic eddy; Arctic halocline", "Nonhydrostatic modeling"))


function(input, output, session) {

    output$dt_data <- renderDataTable({
        dt_data <- dt
    })

    ## search dt for text
    output$dt_found <- renderDataTable({

        if(input$txt_search==""){
            dt_found <- NULL
        }else{
            txt <- input$txt_search
            dt_data <- dt

            dt_found <- dt_data[ grep(txt, dt_data$keywords), ]
        }
        return(dt_found)
    })
}

ui.R

library(shiny)
library(shinydashboard)
library(DT)

dashboardPage(
    dashboardHeader(),
    dashboardSidebar(),
    dashboardBody(
        dataTableOutput(outputId = "dt_data"),
        textInput(inputId = "txt_search", label = "Search"),
        dataTableOutput(outputId = "dt_found")
    )
)