尚不完全清楚您希望如何搜索文本,或者您希望从中返回什么,因此示例输出会很好。
但是,根据您的描述,听起来顶部的“搜索”框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")
)
)