gpt4 book ai didi

r - 对按列名分组但将所有列保留在 R 中的行值求和?

转载 作者:行者123 更新时间:2023-12-05 09:26:42 25 4
gpt4 key购买 nike

有人问过类似的问题herehere但是,我的问题与那些问题略有不同。在其他问题中,在按组求和后,他们将删除“重复”列。我想保留重复的列。例如,如果我有一个如下所示的矩阵:

myMat <- matrix(NA, 3, 4)
colnames(myMat) <- c('x', 'y', 'x', 'y')
myMat[1,] <- c(1,2,0,1)
myMat[2,] <- c(2,4,3,5)
myMat[3,] <- c(3,6,1,7)

> myMat
x y x y
[1,] 1 2 0 1
[2,] 2 4 3 5
[3,] 3 6 1 7

我想按行求和,按列名分组。在上面的链接中,其中一个答案暗示了这一点:

> t(rowsum(t(myMat), group = colnames(myMat), na.rm = T))
x y
[1,] 1 3
[2,] 5 9
[3,] 4 13

但如您所见,他们将具有相同名称的列组合在一起,结果减少了列数。我想对这些值求和,但仍然有相同的列。例如,我想要的输出如下所示:

     x  y x  y
[1,] 1 3 1 3
[2,] 5 9 5 9
[3,] 4 13 4 13

在上面,行(按名称分组)被汇总...但我仍然有每个单独的列。关于如何执行此操作有什么建议吗?

最佳答案

您可以像下面那样尝试ave(借助com + low)

> ave(myMat,colnames(myMat)[col(myMat)], row(myMat), FUN = sum)
x y x y
[1,] 1 3 1 3
[2,] 5 9 5 9
[3,] 4 13 4 13

关于r - 对按列名分组但将所有列保留在 R 中的行值求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73501618/

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