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)