這裏是一個工作的模板:這裏矢量閃亮選擇:: 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個變量全部設置爲「全部」作爲初始狀態,它最終會膨脹很多臨時變量。並且在每個變量選擇中有幾個級別的聚合......否則它是完全有效的選項。我只是希望在閃亮的框架內提供直接解決方案。 –