如何拥有一个不过滤并显示所有变量的 SelectInput?
How to have a SelectInput that does not filter and shows all variables?
我有以下闪亮的应用程序 - 我的目标是在我的输入中有一个不过滤名为“全部”的选项。问题是我不知道如何编写“全部”函数的代码。我可以过滤到特定国家没问题,但是当我 select “全部”时,我得到一个空白图。
library(shinydashboard)
library(shiny)
library(ggplot2)
library(dplyr)
data <- data.frame(Country = c("France", "Germany","England","Spain"),
Count = c(10,12,15,9))
ui <- dashboardPage(
dashboardHeader(),
dashboardSidebar(
sidebarMenuOutput("menu")
),
dashboardBody(
fluidRow(
box(plotOutput("plot1", height = 250)),
box(selectInput("Dropdown","Select Country", c(data$Country, "All"))
)
)
)
)
server <- function(input, output) {
output$plot1 <- renderPlot({
ggplot(data %>%
filter(Country == input$Dropdown),
aes(x=Country, y=Count)) +
geom_bar(stat = "identity")
})
}
shinyApp(ui, server)
这是我试过的一些代码,但它不起作用
server <- function(input, output) {
output$plot1 <- renderPlot({
ggplot(data %>%
filter{if (input$Dropdown == "All") data
else (Country == input$Dropdown)} ,
aes(x=Country, y=Count)) +
geom_bar(stat = "identity")
})
}
当它是“全部”时你不应该过滤。试试这个
output$plot1 <- renderPlot({
if (c("All") %in% input$Dropdown) df <- data
else df <- data %>% filter(Country == input$Dropdown)
ggplot(df, aes(x=Country, y=Count)) +
geom_bar(stat = "identity")
})
我有以下闪亮的应用程序 - 我的目标是在我的输入中有一个不过滤名为“全部”的选项。问题是我不知道如何编写“全部”函数的代码。我可以过滤到特定国家没问题,但是当我 select “全部”时,我得到一个空白图。
library(shinydashboard)
library(shiny)
library(ggplot2)
library(dplyr)
data <- data.frame(Country = c("France", "Germany","England","Spain"),
Count = c(10,12,15,9))
ui <- dashboardPage(
dashboardHeader(),
dashboardSidebar(
sidebarMenuOutput("menu")
),
dashboardBody(
fluidRow(
box(plotOutput("plot1", height = 250)),
box(selectInput("Dropdown","Select Country", c(data$Country, "All"))
)
)
)
)
server <- function(input, output) {
output$plot1 <- renderPlot({
ggplot(data %>%
filter(Country == input$Dropdown),
aes(x=Country, y=Count)) +
geom_bar(stat = "identity")
})
}
shinyApp(ui, server)
这是我试过的一些代码,但它不起作用
server <- function(input, output) {
output$plot1 <- renderPlot({
ggplot(data %>%
filter{if (input$Dropdown == "All") data
else (Country == input$Dropdown)} ,
aes(x=Country, y=Count)) +
geom_bar(stat = "identity")
})
}
当它是“全部”时你不应该过滤。试试这个
output$plot1 <- renderPlot({
if (c("All") %in% input$Dropdown) df <- data
else df <- data %>% filter(Country == input$Dropdown)
ggplot(df, aes(x=Country, y=Count)) +
geom_bar(stat = "identity")
})