r语言 - Data.table:使用 shiny 动态选择按变量分组



我正在尝试开发一个应用程序,允许用户选择在data.table的"by"部分中使用哪些变量。

假设将mtcars数据集加载到应用程序中,在UI中将有一个选择,例如:

vector.vars <- c('am', 'gear', 'carb')
selectInput("vars", "Select variables:", as.list(vector.vars), selected = 'am', multiple = TRUE)

此选择输入将在 UI 中呈现,当用户选择服务器中的某些变量时,将如下所示:

output$table <- renderDataTable({
  d <- mtcars[, list(mpg_mean= mean(mpg), by=input$vars]
  })

在这种情况下,如果用户选择了"am"和"carb",则前面的脚本应执行此操作:

  d <- mtcars[, list(mpg_mean= mean(mpg), by=list(am, carb)]

并显示"am"和"carb"每种组合的"mpg"平均值。

。但是 by=input$vars 不能按预期工作。

关于如何达到所需输出的任何想法,提前感谢!

这将做到这一点:

as.data.table(mtcars)[, .(mpg_mean = mean(mpg)), by = c(input$vars)]

最新更新