聚合 R 中的两行,按它们的总和
Aggregate two row in R, by their sum
假设我有这样一个矩阵:
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 添加到 a 的 f。
所以我得到的将是:
x y z f
a 2 2 3 20
b 2 3 1 90
我该怎么做?
谢谢。
我们可以使用 aggregate
中的 'formula' 方法。这里 .
表示数据集中的所有其他变量。
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")))
假设我有这样一个矩阵:
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 添加到 a 的 f。
所以我得到的将是:
x y z f
a 2 2 3 20
b 2 3 1 90
我该怎么做?
谢谢。
我们可以使用 aggregate
中的 'formula' 方法。这里 .
表示数据集中的所有其他变量。
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")))