首页 > 解决方案 > 在r闪亮中访问多个pickerInput值中的值

问题描述

我正在尝试使用在 r shiny 应用程序的 pickerInput 控件中选择的每个值。我有一个示例代码如下:

library(shiny)
library(shinyWidgets)

ui <- fluidPage(
  pickerInput(inputId = "testPicker",
              label = "Select Multiple",
              choices = c(2021, 2020,2019,2018,2017),
              selected = c(2021, 2020,2019,2018,2017),
              multiple = TRUE,
                options = list(
                    `actions-box` = TRUE,
                    "max-options" = 4,
                    "max-options-text" = "You can ONLY select 4 years!"
                )),
  verbatimTextOutput("year1"),
  verbatimTextOutput("year2")
  verbatimTextOutput("year3")
)

server <- function(input, output, session) {
    
    output$year1 <- renderPrint(input$testPicker[3])
    output$year2 <- renderPrint(input$testPicker[2])
    output$year3 <- renderPrint(input$testPicker[1])
}

shinyApp(ui, server)

我期待上面的代码能够工作,但它没有打印任何值。我想在搜索中使用每个选定的值来获取不同的数据框,如下所示:

total_for_year1 <- main_data() %>%
            filter(Year == input$testPicker[4]) %>%
            group_by(LGA) %>%
            summarise("Total Students" = sum(`Class Student Count`)) %>%
            ungroup()

我正在使用的数据可以从https://github.com/BAderinto/rshiny_data/blob/main/df.csv下载 我需要用户选择多年,然后我使用每个值来过滤并返回数据框架每个选择的每一年。

有什么建议吗?

标签: rshinyshinywidgets

解决方案


谢谢你们。我实际上在 verbatimTextOutput 语句之间省略了一个逗号

library(shiny)
library(shinyWidgets)

ui <- fluidPage(
  pickerInput(inputId = "testPicker",
              label = "Select Multiple",
              choices = c(2021, 2020,2019,2018,2017),
              selected = c(2021, 2020,2019,2018,2017),
              multiple = TRUE,
                options = list(
                    `actions-box` = TRUE,
                    "max-options" = 4,
                    "max-options-text" = "You can ONLY select 4 years!"
                )),
  verbatimTextOutput("year1"),
  verbatimTextOutput("year2"),
  verbatimTextOutput("year3")
)

server <- function(input, output, session) {
    
    output$year1 <- renderPrint(input$testPicker[3])
    output$year2 <- renderPrint(input$testPicker[2])
    output$year3 <- renderPrint(input$testPicker[1])
}

shinyApp(ui, server)

我现在能够使用所选的单个值来操作我的项目。谢谢你


推荐阅读