如何从复选框中的多个选定项目中获取多个图?

how can I get more than one plot from several selected items in a checkbox?

早上好, 在我的仪表板中,我插入了一个复选框 select 要显示的一个或多个输出。在 ui 中,我输入了复选框,并在服务器中输入了所有条件(如果...否则如果...)。当我启动该应用程序时,它只显示一个情节,即使我 select 在复选框中有多个选择也是如此。此外,它在控制台中给我这个错误:

"Warning in if (input$checkGroup == 1) { :the condition has length > 1 and only the first element will be used"

我想它告诉我我不能处理一个以上的选择,我如何查看我选择的所有情节?

 ui <- fluidPage(titlePanel("IULM Dashboard"), sidebarLayout(sidebarPanel(
 selectInput("selection", "Choose a Dataset:",
          choices = datasets), 
  ("Barplot","Network",'Wordcloud', "LDA-Latent topic"),
           #selected = "Barplot", inline = TRUE),
   checkboxGroupInput("checkGroup", label = ("Checkbox group"), 
                 choices = list("Barplot" = 1, "Network" = 2), selected = 1, inline = TRUE),
   actionButton("update", "Change"))    
 , mainPanel(   
   uiOutput("plot")))

  server <- function(input, output){


datasetInput <- reactive({ 
  input$update

  isolate({
    withProgress({
      setProgress(message = "Processing corpus...")
      getTermMatrix(input$selection)

    })
  })
})
output$plot <- renderUI({

  if(input$checkGroup== 1 ){
 output$barplot <- renderPlot({
v=datasetInput()
dtm1 = removeSparseTerms(v, 0.992)
freq <- colSums(as.matrix(dtm1))
wf = data.frame(term = names(freq), occurrences = freq)
wf <- wf[order(wf$occurrences, decreasing = TRUE),]
wf2 = subset(wf[1:input$maxB,]) 
ggplot(wf2, aes(term, occurrences)) +
  geom_bar(stat="identity", fill="darkred", colour="black", width=0.5)+
  theme(axis.text.x=element_text(angle=45, hjust=1))+
  ggtitle("Word barplot")})
plotOutput(outputId = "barplot", width = 600, height = 400)
}

  else if(input$checkGroup== 2 ){
  output$network <- renderPlot({
v=datasetInput()
dtm1 = removeSparseTerms(v, 0.992)
rowTotals <- apply(dtm1 , 1, sum) 
dtm2   <- dtm1[rowTotals> 0, ]
wdtm <- weightTf(dtm2)
dtm1 <- removeSparseTerms(wdtm, 0.96)
dfm <- as.dfm(dtm1)
textplot_network(dfm, min_freq = 0.5, omit_isolated = TRUE,
                 edge_color = "#1F78B4", edge_alpha = 0.5, edge_size = 2,
                 vertex_color = "#4D4D4D", vertex_size = 2,
                 vertex_labelsize = 5, offset = NULL)})
  plotOutput(outputId = "network", width = 600, height = 600)}
  })
  }

  shinyApp(ui = ui, server = server)

你可以试试

library(shiny)
ui <- fluidPage(

      sidebarLayout(
        sidebarPanel(
            checkboxGroupInput("variable", "Variables to show:",
                               c("Cylinders" = "cyl",
                                 "Transmission" = "am",
                                 "Gears" = "gear"))
        ),
        mainPanel(
            uiOutput("plots")
        )))

server <- function(input, output) {

    output$plots <- renderUI({
        req(input$variable)
        output = tagList()

        if(any(input$variable %in% "cyl")){
        tmp <- mtcars$cyl
        output[[1]] <- renderPlot({plot(mtcars$mpg, tmp)})
        }
        if(any(input$variable %in% "am")){
        tmp <- mtcars$am
         output[[2]] <- renderPlot({boxplot(mtcars$mpg, tmp)})
        }

        output

    })
}
shinyApp(ui = ui, server = server)