如何将搜索小部件添加到我闪亮的应用程序中?
How do I add search widget to my shiny app?
我希望能够在我的应用程序中添加一个搜索小部件,link:https://aquayaapps.shinyapps.io/big_data/ 这样,当我输入任何单词(即水)时,它会输出所有包含水的单词。
到目前为止,我只能添加搜索小部件,但我不知道如何添加交互性,例如当我在搜索栏上键入时会显示结果。
sidebarSearchForm(textId = "searchText", buttonId = "searchButton",label = "Search dataset",
icon = shiny::icon("search"))
这是 UI 但我不知道如何让它具有交互性。
搜索栏应该是交互式的,这样当我输入一个词时它就会输出搜索结果。
这有点取决于你想要什么输出,但原理是一样的。我假设您有某种数据 table,并且您想要包含搜索词的任何行。
因此你需要:
- 作为 table 或数据 table 的输出,由输入过滤(在本例中为
input$searchText
)
req()
如果您希望它仅在您按下搜索时显示
按钮
这是一个非常丑陋的模型,但希望您能理解。
library(shiny)
library(shinydashboard)
library(data.table)
header <- dashboardHeader(title = "Search function")
sidebar <- dashboardSidebar(
sidebarSearchForm(textId = "searchText", buttonId = "searchButton",
label = "Search dataset", icon = shiny::icon("search"))
)
body <- dashboardBody(tableOutput("filtered_table"))
ui <- dashboardPage(title = 'Search', header, sidebar, body)
server <- function(input, output, session) {
example_data <- data.table(ID = 1:7, word = c("random", "words", "to",
"test", "the", "search", "function"))
output$filtered_table <- renderTable({
req(input$searchButton == TRUE)
example_data[word %like% input$searchText]
})
}
shinyApp(ui = ui, server = server)
编辑:只是补充一下,如果你确实想要用户可以搜索的数据table,如果你使用 DT
包中的 dataTableOuput
和 renderDataTable
,其中包括带有 table 的搜索功能。
我希望能够在我的应用程序中添加一个搜索小部件,link:https://aquayaapps.shinyapps.io/big_data/ 这样,当我输入任何单词(即水)时,它会输出所有包含水的单词。
到目前为止,我只能添加搜索小部件,但我不知道如何添加交互性,例如当我在搜索栏上键入时会显示结果。
sidebarSearchForm(textId = "searchText", buttonId = "searchButton",label = "Search dataset",
icon = shiny::icon("search"))
这是 UI 但我不知道如何让它具有交互性。
搜索栏应该是交互式的,这样当我输入一个词时它就会输出搜索结果。
这有点取决于你想要什么输出,但原理是一样的。我假设您有某种数据 table,并且您想要包含搜索词的任何行。
因此你需要:
- 作为 table 或数据 table 的输出,由输入过滤(在本例中为
input$searchText
) req()
如果您希望它仅在您按下搜索时显示 按钮
这是一个非常丑陋的模型,但希望您能理解。
library(shiny)
library(shinydashboard)
library(data.table)
header <- dashboardHeader(title = "Search function")
sidebar <- dashboardSidebar(
sidebarSearchForm(textId = "searchText", buttonId = "searchButton",
label = "Search dataset", icon = shiny::icon("search"))
)
body <- dashboardBody(tableOutput("filtered_table"))
ui <- dashboardPage(title = 'Search', header, sidebar, body)
server <- function(input, output, session) {
example_data <- data.table(ID = 1:7, word = c("random", "words", "to",
"test", "the", "search", "function"))
output$filtered_table <- renderTable({
req(input$searchButton == TRUE)
example_data[word %like% input$searchText]
})
}
shinyApp(ui = ui, server = server)
编辑:只是补充一下,如果你确实想要用户可以搜索的数据table,如果你使用 DT
包中的 dataTableOuput
和 renderDataTable
,其中包括带有 table 的搜索功能。