gpt4 book ai didi

R对每行中的某些列求和

转载 作者:行者123 更新时间:2023-12-04 04:49:35 24 4
gpt4 key购买 nike

我遇到了一个问题,但我相信对于非常熟悉 R 的人来说这非常容易。
我有一个 3008 x 3008 的矩阵。我想要的是每行每 8 列求和。所以基本上你最终会得到一个现在是 367 x 367 的新矩阵。

这是一个小例子:

           C.1 C.2 C.3 C.4 C.5 C.6
row1 1 2 1 2 5 6
row1 1 2 3 4 5 6
row1 2 6 3 4 5 6
row1 1 2 3 4 10 6

所以说我想为每行中的每 3 列总结这些,我想最终得到:
           C.1 C.2
row1 4 13
row1 6 15
row1 11 15
row1 6 20

最佳答案

# m is your matrix
n <- 8
grp <- seq(1, ncol(m), by=n)
sapply(grp, function(x) rowSums(m[, x:(x+n-1)]))

如果您是 R 新手,请做一些解释。 grp是一个数字序列,它给出了每组列的起点:1、9、17 等,如果你想对每 8 列求和。
sapply调用可以理解如下。对于 grp 中的每个数字,它调用 rowSums函数,将与该组编号对应的那些矩阵列传递给它。因此当 grp为 1,它获取第 1-8 列的行总和;当 grp是 9,它获取第 9-16 列的行总和,依此类推。这些是向量,其中 sapply然后结合成一个矩阵。

关于R对每行中的某些列求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17620846/

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