r - 在R中按组取矩阵中行的乘积

标签 r performance matrix

我正在寻找一种方法来基本上完成 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/

相关文章:

r - 如何在R中计算国家之间的边界长度?

r - if_else() `false` 必须是 double 型,而不是整数型 - 在 R 中

mysql - 如何有效地创建汇总表

c - 任意大小的矩形矩阵的运行时高效转置

C将字符串保存到二维数组

r - 打印 R 函数中的循环数

r - Ifelse 与 R 中的 dplyr

javascript - 提高具有多个列表元素的纯 Javascript 平滑滚动的性能

jQuery (2.0.2) empty() html() 内存消耗持续增长

python - Dataframe 中的转换矩阵未传递值