我对使用r很陌生,更不用说闪亮的仪表板了,但是我有一个项目需要使用它。我所要做的是在输出中抑制特定数量的结果。我现在有一个仪表板,其中有几个selectinputs用于筛选表的结果。例如,用户可以按特定的县、年龄组和性别进行筛选,并将收到包含所有这些结果的表。假设一个用户这样做了,但收到的结果不到30个,这就是我需要仪表板响应而不提供结果的地方,甚至可能是给用户一个提示(我只满足于数据抑制)。
我正在使用的数据库非常大,在这方面进行压制最终会降低总体数据质量。我的想法是,我需要在服务器端的一些东西,基本上说,当过滤结果大于30时,不显示。
请让我知道,如果需要进一步澄清,我为缺乏R知识提前道歉。
谢谢!

最佳答案

server中,生成的输出表类似于:

output$table <- renderDataTable({ df %>% filter(var1 == "input$var1" &
                                                var2 == "input$var2") })

您需要在ui事件中返回一条错误消息。
因此,我建议在服务器和ui中都使用nrow(output$table) < 30来处理这些情况。类似于:
服务器
table_react <- reactive({
    temp <- df %>% filter(var1 == "input$var1" &
                          var2 == "input$var2")
    ifelse(nrow(temp) >= 30, temp, NULL) })

output$table <- renderDataTable({ table_react() })

用户界面
ifelse(table_react() == NULL,
       textOutput("Your selections result in a table with < 30 entries. Please try again."),
       dataTableOutput("table"))

10-04 21:39
查看更多