我使用Shiny 包中的pickerInput函数shinyWidgets来创建下拉菜单。例如我的一部分ui.R:
library(shiny)
library(data.table)
library(shinyWidgets)
.
.
#Rating
pickerInput(
inputId = "rate",
label = "Rating:",
choices = c(as.character(unique(datT2[order(rat.ord)]$Rating))),
selected = sort(unique(as.character(datT2$Rating ))),
options = list(`actions-box` = TRUE,
`selected-text-format` = paste0("count > ", length(unique(as.character(datT2$Rating )))-1) ,
`count-selected-text` = "Alle",liveSearch = TRUE,
liveSearchPlaceholder= TRUE),
multiple = T
)
Run Code Online (Sandbox Code Playgroud)
在此功能之前,我只应用了正常功能:
#Rating
selectInput("rate",
"Rating:",
choices = c("Alle",
sort(unique(as.character(datT2$Rating )))),
selected = "Alle",
multiple = TRUE)
Run Code Online (Sandbox Code Playgroud)
在selectInput功能中可以根据输入进行搜索,但不能像 in 一样通过单击取消选择所选项目 pickerInput。
我怎样才能有基于输入字母的搜索选项 pickerInput?
Wil*_*ren 10
答案有点晚,但您的选项命名是错误的。改变liveSearch的live-search,它会工作。
options = list(`live-search`=TRUE)
Run Code Online (Sandbox Code Playgroud)
编辑
如果有,shinyWidgets >= 4.4您还可以使用该功能pickerOptions来设置选项。您可以通过调用?pickerOptions或检查此网址来检查所有可能的选项。
两种方法的示例:
library(shiny)
library(shinyWidgets)
ui <- fluidPage(
pickerInput('picker 1', 'picker1', c(1,2,3,4,5), options=pickerOptions(liveSearch=T)),
pickerInput('picker 2', 'picker2', c(1,2,3,4,5), options = list(`live-search`=TRUE))
)
server <- function(input, output, session) {}
shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)