rowsum 中的 'group' 参数如何工作?
How does the 'group' argument in rowsum work?
我明白 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 组,因此它将前两行相加得到输出的第一行,并将最后两行相加得到输出的第二行。
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的构成类似
我明白 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 组,因此它将前两行相加得到输出的第一行,并将最后两行相加得到输出的第二行。
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的构成类似