0

我有一个表,其中每个条目都有一个关键字字段,其中许多包含多个关键字。关键字当前由分号分隔,如下例所示。

author  keywords
Shaw    Anticyclonic eddy; Arctic halocline
Eddie   Nonhydrostatic modeling

是否有可能以一种方式独立对待它们,特别是在搜索一个时,在使用DT 包制作的表格中,显示它存在的每个条目?

例如,我希望用户能够搜索“反气旋涡流”或“北极晕线”。中的默认搜索框datatables将此条目视为一个项目:“反气旋涡流;北极晕线”,但我希望它是两个独立的、可单独搜索的项目。

我该怎么做?

4

1 回答 1

1

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

但是,根据您的描述,听起来顶部的“搜索”框DT会为您执行此操作

但是,如果您希望自己控制它以生成单独的表,您可以执行以下操作:

服务器.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)
    })
}

用户界面

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

dashboardPage(
    dashboardHeader(),
    dashboardSidebar(),
    dashboardBody(
        dataTableOutput(outputId = "dt_data"),
        textInput(inputId = "txt_search", label = "Search"),
        dataTableOutput(outputId = "dt_found")
    )
)
于 2016-02-25T04:48:35.690 回答