Group by multiple columns and sum other multiple columns
The data.table way is : DT[, lapply(.SD,sum), by=list(col1,col2,col3,…)] or DT[, lapply(.SD,sum), by=colnames(DT)[1:10]] where .SD is the (S)ubset of (D)ata excluding group columns. (Aside: If you need to refer to group columns generically, they are in .BY.)