说我有这样的矩阵:
x y z f
a 2 2 3 10
b 2 3 1 90
c 2 2 3 10
我想要的是当x,y和z在两行中相等时我想用它们在f上的和来合并它们。这里a和c的x,y和z相同,我想将c f添加到f f中。
所以我得到的就是这个:
x y z f
a 2 2 3 20
b 2 3 1 90
我该怎么做?
感谢。
答案 0 :(得分:1)
我们可以使用aggregate
中的'公式'方法。这里.
表示数据集中的所有其他变量。
aggregate(f~., m1, FUN=sum)
可以明确地写为
aggregate(f~x+y+z, m1, FUN=sum)
如果仅使用变量子集作为分组变量,那将非常有用。
m1 <- structure(c(2L, 2L, 2L, 2L, 3L, 2L, 3L, 1L, 3L, 10L, 90L, 10L
), .Dim = 3:4, .Dimnames = list(c("a", "b", "c"), c("x", "y",
"z", "f")))