我有一个闪亮的应用程序,其中有一个我手动输入的值的下拉列表。但是,由于我需要在下拉列表中填充很多值,如果我可以让用户在文本框中键入单词并且应用程序仅显示匹配的元素(类似浏览器),那会更好。目前,我正在使用代码:
lapply(1:num, function(i) {
selectInput(paste0("n_input_", i), label = paste0("n_input", i),
choices = list("IN120" = 1, "CR23" = 2, "FG45" = 3,"OR45"=4),
selected = 1)
})
我们能做到闪亮吗?如果没有,我们如何读取csv文件中的值以填充我们的下拉列表?
答案 0 :(得分:1)
要回答第二个问题,请尝试:
myData <- read.csv("my_csv_file_path.csv", row.names=NULL, na.strings="", stringsAsFactors=FALSE)
myList <- as.list(unique(myData[[1]])) ## The number should be the column/field in myData that has the desired list.
lapply(1:num, function(i) {
selectInput(paste0("n_input_", i), label = paste0("n_input", i),
choices = myList)
})
这应该在.csv文件中读取,并在所需列表中创建唯一值的列表。编辑脚本以使用 choices = myList 并删除 selected = 1 部分。省略此选项时,下拉列表将默认为列表中的第一项。一种技术是在列表顶部添加一个初始值(例如,&#34;选择一些东西&#34;)以显示,直到用户从下拉列表中选择一些内容。
干杯!
答案 1 :(得分:-1)
为了回答您的第一个问题,Shiny selectInput()
现在默认使用 selectize.js 库作为输入元素。这允许在 Shiny 中默认搜索选项。