R 使用data.table按不同函数汇总列

R 使用data.table按不同函数汇总列,r,data.table,R,Data.table,假设df是一个包含许多列的数据表。我想按variable1分组,并对variables\u f中的所有变量使用f函数对数据表进行汇总,并对variables\u g中的所有变量使用g进行汇总,假设“variables\u f”和“variables\u g”是字符字符串的vector代表列名,我们按“variable1”分组,用mget在列表中获取这些向量的值,循环lappy,应用函数f和g,然后将(c)连接在一起 数据 set.seed(24) 仅供参考,通常最好提供一个具体的例子,就像akr

假设
df
是一个包含许多列的数据表。我想按
variable1
分组,并对
variables\u f
中的所有变量使用
f
函数对数据表进行汇总,并对
variables\u g
中的所有变量使用
g

进行汇总,假设“variables\u f”和“variables\u g”是
字符字符串的
vector
代表列名,我们按“variable1”分组,用
mget
列表中获取这些
向量的值,循环
lappy
,应用函数
f
g
,然后将(
c
)连接在一起

数据
set.seed(24)

仅供参考,通常最好提供一个具体的例子,就像akrun在下面的“数据”部分所做的那样。
df[,  c(lapply(mget(variables_f), f), 
         lapply(mget(variables_g), g)), by = variable1]
set.seed(24)
df <- data.frame(variable1 = rep(LETTERS[1:5], each = 2), 
           matrix(sample(1:9, 10*20, replace=TRUE), ncol=20,
          dimnames = list(NULL,  
 c(paste0('var_f', 1:10), paste0('var_g', 1:10)))))
setDT(df)
variables_f <- paste0("var_f", 1:10)
variables_g <- paste0("var_g", 1:10)

f <- function(x) mean(x)
g <- function(x) max(x)