gpt4 book ai didi

r - 根据单独向量中索引处的值合并列

转载 作者:行者123 更新时间:2023-12-04 10:16:13 27 4
gpt4 key购买 nike

我有一个这样的矩阵:

> y
[,1] [,2] [,3] [,4]
[1,] 17 14 5 8
[2,] 7 2 17 2
[3,] 10 18 6 6
[4,] 6 11 4 11
[5,] 5 9 4 9

和一个向量
> group
[1] 1 2 2 3

组向量表示第 1 列在第 1 组中,第 2 列和第 3 列在第 2 组中,第 3 列在第 3 组中。我想合并 y 中的列(通过加法),以便分配给特定组的所有列都是相加即得到:
     [,1] [,2] [,3]
[1,] 17 19 8
[2,] 7 19 2
[3,] 10 24 6
[4,] 6 15 11
[5,] 5 13 9

我一直在搞弄子集、合并和减少,但我真的一无所获。

最佳答案

我们可以做的

sapply(split(seq_along(group), group), function(x) rowSums(y[, x, drop = FALSE]))
# 1 2 3
#[1,] 17 19 8
#[2,] 7 19 2
#[3,] 10 24 6
#[4,] 6 15 11
#[5,] 5 13 9

或者另一个选项是 rowsum
t(rowsum(t(y), group))
# 1 2 3
#[1,] 17 19 8
#[2,] 7 19 2
#[3,] 10 24 6
#[4,] 6 15 11
#[5,] 5 13 9

关于r - 根据单独向量中索引处的值合并列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44544150/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com