r - Shiny Dashboard 中的数据抑制

标签 r database shinydashboard

我对使用 R 还很陌生,更不用说 Shiny 的仪表板了,但我有一个项目需要使用它。我想要完成的是某种抑制输出中特定数量结果的方法。我目前有一个仪表板,其中有几个用于过滤表结果的 selectInputs。例如,用户可以按特定的县、年龄组和性别进行过滤,并会收到一个包含所有这些结果的表格。假设用户这样做并收到不到 30 个结果,这是我需要仪表板响应而不提供结果的地方,甚至可能向用户提示(我会满足于数据抑制)。

我正在使用的数据库非常大,在这方面进行抑制最终会降低整体数据质量。我的想法是我需要服务器端的一些东西,基本上说当过滤结果> 30 时不显示。

如果需要进一步说明,请告诉我,对于缺乏 R 知识,我提前表示歉意。

谢谢!

最佳答案

在你的server ,您正在生成类似于以下内容的输出表:

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

并且你需要在ui中返回错误信息nrow(output$table) < 30 的事件.

所以我建议使用 ifelse在您的服务器和用户界面中处理每一种情况。像这样的东西:

服务器

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"))

关于r - Shiny Dashboard 中的数据抑制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52229814/

相关文章:

r - 特定值的 Pheatmap 颜色

r - 牛眼图

dropbox-api - ShinyApp - 使用 rdrop2 进行 Dropbox 身份验证

r - 在 shinydashboard 中显示/隐藏 menuItem

r - 如何用R中的频率表获得中位数?

r - C 符号名称 "rs_createGD"不在加载表中

静态页面的数据库结构

php - 动态更改默认连接

sql - 如何从没有 id 的表中删除重复(重复)记录和行

r - 从服务器端禁用/启用侧边栏