【问题标题】:descriptive statistics with group by in Shiny app在 Shiny 应用程序中使用 group by 的描述性统计
【发布时间】:2021-12-13 13:55:39
【问题描述】:

我有一个示例工作代码,如下所示。结果应该是group(基于 Species 和/或 Species2)然后打印出 Sepal.Length 和 Sepal.Width 的 mean。我很感激。

    library(shiny)
library(dplyr)

iris$Species2 <- iris$Species

ui <- fluidPage(
  
  selectInput(inputId ="column",
              label = "Choose Column for Summary",
              choices = c("Species", "Species2"),
              selected = "Species", multiple = T),
  
  DT::dataTableOutput('mytable')
)

server <- function(input, output) {
  output$mytable <- DT::renderDataTable({
    Summarise <-
      iris %>%
      dplyr::group_by(groupby = input$column) %>% 
      summarise( mean1 = mean(iris$Sepal.Length))
    DT::datatable(data = Summarise)
  })
  
}

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

预期的答案;

a <- iris %>% 
  dplyr::group_by(Species) %>%
  dplyr::summarise( mean1 = mean(Sepal.Length)); a


  Species    mean1  mean2 
  <fct>      <dbl> 
1 setosa      5.01  5.01
2 versicolor  5.94  5.94
3 virginica   6.59  6.59

【问题讨论】:

    标签: r shiny shinyapps


    【解决方案1】:

    您可以在group_by 中使用across,以便您可以按多个输入进行分组。

    library(dplyr)
    library(shiny)
    
    iris$Species2 <- iris$Species
    
    ui <- fluidPage(
      
      selectInput(inputId ="column",
                  label = "Choose Column for Summary",
                  choices = c("Species", "Species2"),
                  selected = "Species", multiple = T),
      
      DT::dataTableOutput('mytable')
    )
    
    server <- function(input, output) {
      output$mytable <- DT::renderDataTable({
        Summarise <-
          iris %>%
          dplyr::group_by(across(all_of(input$column))) %>% 
          summarise(mean1 = mean(Sepal.Length))
        DT::datatable(data = Summarise)
      })
      
    }
    
    # Run the application 
    shinyApp(ui = ui, server = server)
    

    【讨论】:

    • 有没有办法在不同的表中而不是在同一个表中查看结果?
    • 对不起,我没明白你的意思。
    • 如果我需要一个结果表的多个因素(物种,... Species10)的组统计数据会令人困惑。这可以单独显示表格吗?第一个表将显示 Species 的平均值,第二个表将显示 Species2 的平均值。
    • 当然这应该是可能的,但我认为将它包含在这篇文章中会让未来的读者感到困惑。你能把它当作一个新问题来问吗?
    猜你喜欢
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-19
    相关资源
    最近更新 更多