Мы можем использовать rowsum
от base R
rowsum(x, group = x)
# [,1]
#2 6
#3 9
#5 10
Или с by
by(x, x, FUN = sum)
или с split
sapply(split(x, x), sum)
# 2 3 5
# 6 9 10
Или другой вариант с xtabs
xtabs(x1 ~ x, cbind(x1 = x, x))
# 2 3 5
# 6 9 10
Или с ave
unique(data.frame(x, Sum = ave(x, x, FUN = sum)))
# x Sum
#1 2 6
#2 3 9
#5 5 10
или используя data.table
library(data.table)
data.table(grp = x, x=x)[, .(Sum = sum(x)), grp]
# grp Sum
#1: 2 6
#2: 3 9
#3: 5 10