我有一個示例作業代碼,如下所示。結果應該group(基于 Species 和/或 Species2)然后列印出meanSepal.Length 和 Sepal.Width。我很欣賞。
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
uj5u.com熱心網友回復:
您可以使用acrossingroup_by以便您可以按多個輸入進行分組。
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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/340016.html
上一篇:我如何使用R撰寫這個數學公式?
