r - rowsum 中的 'group' 参数如何工作?

标签 r rowsum

我理解 rowsum() 的作用,但我正在尝试让它为自己工作。我使用了 R 中提供的示例,其结构如下:

x <- matrix(runif(100), ncol = 5)
group <- sample(1:8, 20, TRUE)
xsum <- rowsum(x, group)

xsum 生成的值矩阵是什么以及如何获得这些值。我认为正在发生的事情是,从group获得的值将用于说明矩阵中要在rowsum中使用的条目数。例如,假设该组 = (2,4,3,1,5)。我认为这意味着按行排列的前两个条目将被选为 xsum 的第一个条目。看起来好像这并不是正在发生的事情。

最佳答案

rowsum 添加具有相同组值的所有行。让我们举一个更简单的例子。

m <- cbind(1:4, 5:8)
m
##      [,1] [,2]
## [1,]    1    5
## [2,]    2    6
## [3,]    3    7
## [4,]    4    8
group <- c(1, 1, 2, 2)
rowsum(m, group)
##   [,1] [,2]
## 1    3   11
## 2    7   15

由于前两行对应于组 1,最后 2 行对应于组 2,因此它对前两行求和,给出输出的第一行,对后 2 行求和,给出输出的第二行。

rbind(`1` = m[1, ] + m[2, ], `2` = m[3, ] + m[4, ])
##   [,1] [,2]
## 1    3   11
## 2    7   15

即m的第1行的1和m的第2行的2相加得到3。 11 是由 m 第 1 行的 5 和 m 第 2 行的 6 相加而成。

7和15的形成类似。

关于r - rowsum 中的 'group' 参数如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54227141/

相关文章:

python - 对索引的二维数组的值求和

r - R 中的列相等

r - Shiny 的下载处理程序超时

R 组按聚合

r - 如何修改我现有的 R 代码,以便输出仅限于此特定条件?

对角线上/下矩阵的行和

r - 如何从 mutate max 操作中排除单列,但保留数据框中的所有列

满足条件的值的行计数

r - 如何选择性地执行函数并累积结果

r - t 作为 R 中全局变量的名称 : impossible?