How do I pass names for new summary columns to data.table in a function?

后端 未结 3 1818
北海茫月
北海茫月 2021-01-20 22:42

Say I want to create a function that calculates a summary dataset from a data.table in R, and I want to be able to pass the name of the new calculated variable in programmat

3条回答
  •  半阙折子戏
    2021-01-20 23:23

    We could use setnames to name the summarised column with the 'out.var' vector.

    groupMeans <- function(out.var, by.var, dat = dt) {
      setnames(dat[, list(mean(x)), by = by.var], 
                     length(by.var)+1L, out.var)
    }
    
    groupMeans("group.var","by.var", dt)[]
    #    by.var  group.var
    #1:      a -0.1159832
    #2:      b  0.2910531
    

    EDIT: Based on @Frank's suggestion.

提交回复
热议问题