Suppose data looks like
group1 group2 num A sg 1 A sh 2 A sg 4 B at 3 B al 7
a <- cum
library(data.table) data <- data.table(group1=c('A','A','A','B','B'),sum=c(1,2,4,3,7)) data[,list(cumsum = cumsum(sum)),by=list(group1)]