【发布时间】:2021-09-05 05:44:54
【问题描述】:
我试图让用户在数据集中选择一个变量diamonds。然后,将弹出一个复选框组(包含该变量中的所有唯一名称)。例如,如果我选择 diamonds 数据集的“颜色”列,则会出现一组复选框(在本例中为 E、I、J、H、F、G、D)。然后,用户应该能够通过只检查他们想要的颜色来按颜色过滤数据集。但是,当我在数据上使用filter 时,表格除了标题之外什么都没有显示。我想知道这里发生了什么,如果有人知道吗?谢谢!
MWE:
用户界面:
data("diamonds")
data1 <- diamonds
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
selectInput("class", label = "Class", choices = c("NONE", names(data1)), selected = "NONE")
),
mainPanel(
uiOutput("classtype"),
tableOutput("table")
)
)
)
服务器:
server <- function(input, output, session) {
output$classtype <- renderUI({
if (input$class != "NONE") {
checkboxGroupInput("classtype", label = "Class Type", choices = sapply(classlist(), unique))
}
})
classlist <- reactive({
data1 %>%
select(input$class)
})
output$table <- renderTable({
data1 %>%
filter(input$class %in% input$classtype)
})
}
根据 Checkbox Group Input 文档,我认为 filter 会起作用,因为服务器将接收输入作为所选值的字符向量。我在这里遗漏了什么吗?
编辑:为了澄清,我的主要目的是能够过滤这些数据并将其用于多种目的。
【问题讨论】: