【问题标题】:Multi-keywords field in a DT table in ShinyShiny中DT表中的多关键字字段
【发布时间】:2016-05-24 04:11:06
【问题描述】:

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

author  keywords
Shaw    Anticyclonic eddy; Arctic halocline
Eddie   Nonhydrostatic modeling

是否可以独立处理它们,以便在特别搜索一个时,在使用DT package 制作的表格中,显示它存在的每个条目?

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

我该怎么做?

【问题讨论】:

    标签: r shiny dt


    【解决方案1】:

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

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

    但是,如果您希望自己控制它以生成单独的表,您可以这样做:

    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")
        )
    )
    

    【讨论】:

      猜你喜欢
      • 2020-08-04
      • 2017-09-21
      • 2016-01-08
      • 2020-12-13
      • 2016-01-15
      • 1970-01-01
      • 2018-06-15
      • 2020-08-16
      • 2020-12-29
      相关资源
      最近更新 更多