rowum中的“ group”参数如何工作?

时间:2019-01-16 23:54:47

标签: r rowsum

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

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

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

1 个答案:

答案 0 :(得分: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的形成类似。