我想根据用户可以选择作为输入的列对data.frame进行分组。因此,我使用group_by
包中的dplyr
函数。
但是,input$variable
是一个字符串,所以这不会在group_by
中工作,它需要变量。我不知道如何更改代码以使其工作:
library(shiny)
library(dplyr)
df <- data.frame(
a = c("a1", "a2", "a1"),
d = c("d1", "d1", "d2"),
b = c(2, 4, 5)
)
ui <- fluidPage(
selectInput("variable", "Select a variable", choices = c("a", "d"), selected = "a"),
tableOutput("table")
)
server <- function(input, output) {
output$table <- renderTable({
df %>% group_by(input$variable) %>% summarise(the_sum = sum(b))
# this would work: df %>% group_by(a) %>% summarise(the_sum = sum(b))
})
}
shinyApp(ui, server)
关于如何解决这个问题的任何想法?