0

各エントリにリンクされたキーワード フィールドを含むテーブルがあり、多くのエントリには複数のキーワードがあります。キーワードは現在、以下の例のようにセミコロンで区切られています。

author  keywords
Shaw    Anticyclonic eddy; Arctic halocline
Eddie   Nonhydrostatic modeling

DT パッケージで作成されたテーブルで特に 1 つを検索するときに、それが存在するすべてのエントリが表示されるように、それらを個別に処理することは可能ですか?

たとえば、ユーザーが「Anticyclonic eddy」または「Arctic halocline」のいずれかを検索できるようにしたいと考えています。のデフォルトの検索ボックスはdatatables、このエントリを 1 つの項目「高気圧性渦; 北極塩分層」として扱いますが、個別に検索できる 2 つの別個の項目にしたいと考えています。

どうすればいいですか?

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

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")
    )
)
于 2016-02-25T04:48:35.690 に答える