r - 通过对另一个矩阵的行求和在 R 中创建新矩阵

标签 r matrix

所以我有以下矩阵(我们称之为输出):

> output

     [,1] [,2] [,3] [,4] [,5] [,6] 
[1,]   1    1    1    0    0    1
[2,]   1    1    1    0    0    1
[3,]   1    1    1    0    0    1
[4,]   0    0    0    0    0    0
[5,]   1    0    1    1    0    0 
[6,]   1    0    1    1    0    0

我想要做的是通过以两个为一组添加行来创建一个新矩阵(输出 2)。例如,新矩阵的第一行是:
output2[1,] <- output[1,] + output[2,]

新矩阵 output2 的第二行将由旧输出矩阵的第三行和第四行之和组成:
output2[2,] <- output[3,] + output[4,]

等等。我想知道什么是最好的编码方式,考虑到我需要对更大的矩阵做同样的事情。我正在考虑使用 seq() 函数和 for 循环创建虚拟变量。

有没有更简单的方法?

编辑:

dput(output)



结构(c(1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1,
1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0,
0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0,
0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0,
0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 0), .Dim = c(10L, 19L))

最佳答案

m是你的矩阵,试试这个:

m[seq(1,by=2,to=nrow(m)),]+m[seq(2,by=2,to=nrow(m)),]

关于r - 通过对另一个矩阵的行求和在 R 中创建新矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47514565/

相关文章:

tensorflow - tensorflow 或pytorch中的分区矩阵乘法

python - 如何向大 numpy 矩阵添加列

c++ - 如何仅对 10 x 10 矩阵的右四分之一进行排序?

R:绘制 MASS polr 序数模型的预测

r - 试图确定为什么我的热图使用 heatmap.2 并在 R 中使用中断是不对称的

r - 微分方程解中非常小的总体/状态变量为零

c++ - 使用 Rcpp 公开 C++ 类

c - 矩阵键盘 4*4 arduino

r - 将单元格颜色映射到 kableExtra 中的数据值以创建热图表

r - 按整个整数值分割浮点向量