Пример данных с большим количеством столбцов:
df <- structure(list(Group = c(1L, 1L, 2L, 2L), Variable1 = c(10L,
12L, 6L, 4L), Variable2 = c(2L, 6L, 7L, 9L), Variable3 = c(9L,
8L, 10L, 2L), Variable4 = c(8L, 7L, 9L, 5L)), row.names = c(NA,
-4L), class = "data.frame")
# Group Variable1 Variable2 Variable3 Variable4
# 1: 1 10 2 9 8
# 2: 1 12 6 8 7
# 3: 2 6 7 10 9
# 4: 2 4 9 2 5
Создание векторов имен переменных и использование mget
+ lapply
в data.table
library(data.table)
setDT(df)
df[, c(lapply(mget(paste0('Variable', 1:2)), sum),
lapply(mget(paste0('Variable', 3:4)), mean)),
by = Group]
# Group Variable1 Variable2 Variable3 Variable4
# 1: 1 22 8 8.5 7.5
# 2: 2 10 16 6.0 7.0