我有一个如下数据框:
a b c d e
1 2 3 1 1
2 3 0 1 1
3 4 2 1 1
4 5 0 1 2
5 0 7 1 2
我想为列e
中的每个唯一值求和。
所以我的输出应该是:
a b c d e
6 9 5 3 1
9 5 7 2 2
我该怎么办?
答案 0 :(得分:2)
使用by
cbind(do.call(rbind, by(d[-5], d$e, colSums)), e=unique(d$e))
# a b c d e
# 1 6 9 5 3 1
# 2 9 5 7 2 2
或使用aggregate
aggregate(. ~ e, d, FUN=sum)
# e a b c d
# 1 1 6 9 5 3
# 2 2 9 5 7 2
数据
d <- structure(list(a = 1:5, b = c(2L, 3L, 4L, 5L, 0L), c = c(3L,
0L, 2L, 0L, 7L), d = c(1L, 1L, 1L, 1L, 1L), e = c(1L, 1L, 1L,
2L, 2L)), row.names = c(NA, -5L), class = "data.frame")