1

我明白是什么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. 似乎这不是正在发生的事情。

4

1 回答 1

1

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 组,因此它将前两行相加,给出输出的第一行,并将最后两行相加,给出输出的第二行。

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

即 3 是通过将 m 的第 1 行的 1 和 m 的第 2 行的 2 相加而形成的。11 是通过将 m 的第 1 行中的 5 和 m 的第 2 行中的 6 相加而形成的。

图7和15类似地形成。

于 2019-01-17T00:06:27.457 回答