2017-10-05 119 views
1

我正在嘗試開發一個應用程序,允許用戶選擇在'by'section的data.table中使用哪些變量。Data.table:使用閃亮的變量動態選擇組

Supose的mtcars數據集被加載到應用程序,在用戶界面中會有一個選擇像:

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'and‘碳水化合物的’前述腳本應執行此操作:

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

並顯示每個'am'和'carb'組合的'mpg'的平均值。

...但是by =輸入$ vars不能按預期工作。

任何想法,我如何能達到預期的輸出, 在此先感謝!

回答

1

這樣做:

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