我正在寻找一种方法来基本上完成 rowsum
的工作函数可以,除了取乘积而不是求和。
假设我有矩阵 a
和一个分组 ID 向量 group
:
a <- matrix(seq(12), ncol = 2)
group <- c(1, 1, 2, 2, 3, 3)
我可以使用 rowsum(a, group)
按组获取每一行的总和:
rowsum(a, group)
[,1] [,2]
1 3 15
2 7 19
3 11 23
如何按组获取每一行的乘积,这将给出:
[,1] [,2]
1 2 56
2 12 90
3 30 132
最佳答案
你可以尝试apply
+ tapply
+ prod
> apply(a, 2, tapply, group, prod)
[,1] [,2]
1 2 56
2 12 90
3 30 132
关于r - 在R中按组取矩阵中行的乘积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68733356/