Shiny 依赖于多个输入的反应图
我有一个反应图,它接受多个输入,但它依赖于所有这些输入。有没有一种方法可以让图形接受所有的输入,但它不依赖于所有的输入。例如,如果用户选择一个下拉列表,则图形将更新,不需要任何其他输入,但如果用户添加第二个输入,则图形将使用第二个输入进行更新,但不需要第三个输入,除非已选择。此外,如果用户选择的内容为空,则不会更改图形 用户界面:Shiny 依赖于多个输入的反应图,shiny,Shiny,我有一个反应图,它接受多个输入,但它依赖于所有这些输入。有没有一种方法可以让图形接受所有的输入,但它不依赖于所有的输入。例如,如果用户选择一个下拉列表,则图形将更新,不需要任何其他输入,但如果用户添加第二个输入,则图形将使用第二个输入进行更新,但不需要第三个输入,除非已选择。此外,如果用户选择的内容为空,则不会更改图形 用户界面: ui不是最简单的,但如何按如下方式分离过滤: server <- function(input, output, session) { output$
ui不是最简单的,但如何按如下方式分离过滤:
server <- function(input, output, session) {
output$coolplot <- renderPlotly({
req(c(input$gender, input$traffickingType, input$traffickingSubType))
if(!is.null(input$Nationality)) {
ngo <- ngo %>% filter(Victim.Nationality %in% input$Nationality)
}
if(!is.null(input$gender)) {
ngo <- ngo %>% filter(Victim.Gender %in% input$gender)
}
if(!is.null(input$traffickingType)) {
ngo <- ngo %>% filter(Trafficking.Type %in% input$traffickingType)
}
if(!is.null(input$traffickingSubType)) {
ngo <- ngo %>% filter(Trafficking.Sub.Type %in% input$traffickingSubType)
}
if(!is.null(input$Source)) {
ngo <- ngo %>% filter(Data.Provided.By %in% input$Source)
}
plot_ly(ngo, labels = ~Trafficking.Type, type = "pie")
})
}
shinyApp(ui, server)
server这正是我所需要的,不过有一个问题。当我第一次打开闪亮的应用程序时,饼图会自动创建,其中包含所有输入,我如何获得它,以便在用户选择输入之前它不会显示?感谢您的帮助,我非常感谢!!
server <- function(input, output, session) {
output$coolplot <- renderPlotly({
ngo <-
ngo %>%
filter(Victim.Nationality %in% input$Nationality,
Victim.Gender %in% input$gender,
Trafficking.Type %in% input$traffickingType,
Trafficking.Sub.Type %in% input$traffickingSubType,
Data.Provided.By %in% input$Source
) %>%
plot_ly(labels = ~Trafficking.Type, type = "pie")
})
}
server <- function(input, output, session) {
output$coolplot <- renderPlotly({
req(c(input$gender, input$traffickingType, input$traffickingSubType))
if(!is.null(input$Nationality)) {
ngo <- ngo %>% filter(Victim.Nationality %in% input$Nationality)
}
if(!is.null(input$gender)) {
ngo <- ngo %>% filter(Victim.Gender %in% input$gender)
}
if(!is.null(input$traffickingType)) {
ngo <- ngo %>% filter(Trafficking.Type %in% input$traffickingType)
}
if(!is.null(input$traffickingSubType)) {
ngo <- ngo %>% filter(Trafficking.Sub.Type %in% input$traffickingSubType)
}
if(!is.null(input$Source)) {
ngo <- ngo %>% filter(Data.Provided.By %in% input$Source)
}
plot_ly(ngo, labels = ~Trafficking.Type, type = "pie")
})
}
shinyApp(ui, server)