这里是一个工作的模板:这里矢量闪亮选择:: selectInput()
require(data.table)
require(shiny)
require(ggplot2)
x <- data.table(v1 = sample(letters[1:5], 100, replace = T),
v2 = sample(letters[1:2], 100, replace = T),
v3 = runif(100, 0, 1))
ui <- fluidPage(
sidebarPanel(
selectInput("in1", "Choice v1", selected = "All", choices = c("All" = list(letters[1:5]))),
selectInput("in2", "Choice v2", selected = "a", choices = letters[1:2])
),
mainPanel(
plotOutput("out1")
)
)
server <- function(input, output){
output$out1 <- renderPlot({
ggplot(x[v1 %in% input$in1 & v2 %in% input$in2], aes(x = v3)) +
geom_density(fill = "dodgerblue4", alpha = .7) +
theme_light()
})
}
runApp(shinyApp(ui, server))
问题是,我想允许变量中的值的子集的选择。行selectInput("in1", "Choice v1", selected = "All", choices = c("All" = list(letters[1:5])))
旨在通过letters[1:5]
到input$in1
有效选择所有值并在v1
上不执行数据子集。
同样适用于任何其他值的子集,例如选择"a_b_c" = c("a", "b", "c")
或"All" = x[,unique(v1)]
等。什么有光泽,是包含在其中的所有值的分列表,基本达到预期结果的相反。 我知道有selectizeInput()
选择多个值。但是,如果我想将所有变量作为初始状态,则这是不可行的。
是的,会的。这是可能的解决方法,我应该在后提及。如果你有10个变量全部设置为“全部”作为初始状态,它最终会膨胀很多临时变量。并且在每个变量选择中有几个级别的聚合......否则它是完全有效的选项。我只是希望在闪亮的框架内提供直接解决方案。 –