用于筛选数据的checkboxGroupInput

用于筛选数据的checkboxGroupInput,r,shiny,R,Shiny,我很难让我的过滤盒真正过滤数据。下面是数据和代码的示例。这些框显示良好,可以单击,但选中该框时不会过滤数据 Name Grade Test1 Test2 Sam 1st 88 92 Carla 2nd 82 88 Matt 1st 90 76 Kelsey 3rd 92 96 gradelist <- ("1st", "2nd", "3rd") 服务器部分: output$gradetable <- D

我很难让我的过滤盒真正过滤数据。下面是数据和代码的示例。这些框显示良好,可以单击,但选中该框时不会过滤数据

Name   Grade Test1 Test2  
Sam    1st   88    92  
Carla  2nd   82    88  
Matt   1st   90    76  
Kelsey 3rd   92    96




gradelist <- ("1st", "2nd", "3rd")
服务器部分:

output$gradetable <- DT::renderDataTable({  
DT::datatable(testscores[input$grade,])
})
输出$gradetable
库(闪亮)
图书馆(dplyr)
图书馆(DT)
ui DT::datatable(testscores[testscores$Grade==输入$Grade,]))
output$gradetable <- DT::renderDataTable({  
DT::datatable(testscores[input$grade,])
})
library(shiny)
library(dplyr)
library(DT)

ui <- fluidPage(

    fluidRow(

      checkboxGroupInput("grade", "Filter by Grade", c("1st", "2nd", "3rd"), selected = "1st")

    ),
    fluidRow(
      column(12,
             dataTableOutput('gradetable')
      )
    )

)


server <- function(input, output) {

  testscores <- structure(list(Name = structure(c(4L, 1L, 3L, 2L), .Label = c("Carla", 
                                                                              "Kelsey", "Matt", "Sam"), class = "factor"), Grade = structure(c(1L, 
                                                                                                                                               2L, 1L, 3L), .Label = c("1st", "2nd", "3rd"), class = "factor"), 
                               Test1 = c(88L, 82L, 90L, 92L), Test2 = c(92L, 88L, 76L, 96L
                               )), .Names = c("Name", "Grade", "Test1", "Test2"), class = "data.frame", row.names = c(NA, 
                                                                                                                      -4L))

  # product definition
  output$gradetable <- renderDataTable({  

    testscores %>% filter(Grade == input$grade) %>% datatable

  })

}

# Run the application 
shinyApp(ui = ui, server = server)