在閃亮的谷歌組詢問這個,w沒有幫助:我正在努力如何在下面的代碼中將輸入開關傳遞給dplyr的group_by_ 。閃亮 - R的Web框架>如何使用輸入切換條件組
我在下面的not-so-MRE中粗體顯示了相關代碼的兩部分(即行911和24)。
如果用戶在用戶界面中選擇「每日」,則生成的分組應該是第24行中的group_by(year = year(my_date),month = month(my_date),day = day(my_date)或remove任何分組的數據每日了。
選擇 「按月」,應產生GROUP_BY(年=年(my_date),月=月(my_date))
「每年」,應產生GROUP_BY(年= year(my_date))
我歡迎元建議/關於我的代碼/結構如何組織的批評。
謝謝
library(shiny)
library(dplyr)
library(lubridate)
ui <- fluidPage(
dateInput("start", label = "start date", value = "2010-01-01"),
dateInput("end", label = "end date", value = "2020-01-01"),
selectInput("grouping_freq", label = "Granularity",
choices = list("daily" = 1,"monthly" = 2, "Yearly" = 3),
selected = 2),
tableOutput("my_table")
)
server <- function(input, output) {
df <- reactive({ data_frame(my_date = seq(input$start, input$end, by = 'day')) }) ## 10 years of daily data
df2 <- reactive({ df() %>% mutate(dummy_data = cumsum(rnorm(nrow(df())))) })
output$my_table <- renderTable({
df2() %>% group_by(year = year(my_date), month = month(my_date)) %>%
summarise(dummy_data = sum(dummy_data), my_date = as.Date(min(my_date)))
})
}
shinyApp(ui = ui, server = server)
您可以使用'do.call'來提供一個動態的參數列表。 – sdgfsdh