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
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.