向Matrix添加值行

时间:2015-06-29 20:48:36

标签: r matrix

我对R比较新,所以我觉得我的问题比较简单。如果你有一个矩阵,m。

     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6
[3,]    7    8    9

我想将行t的值添加到矩阵m。

      [,1] [,2] [,3]
[1,]    2    3    4

产生新的矩阵p ...

3 5 7
6 8 10 
9 11 13

我希望有一种通用的方法可以做到这一点,而不是像m [1,] + 2那样做。谢谢你的帮助和时间。

3 个答案:

答案 0 :(得分:6)

你可以试试这个

m1 + m2[col(m1)]

或者

sweep(m1, 2, m2, `+`)

数据

 m1 <- matrix(1:9, 3, 3, byrow=TRUE)
 m2 <- t(2:4)

答案 1 :(得分:1)

如果您的行是矢量作为输入,您也可以尝试这种回收方式:

m1 = matrix(1:9, 3, 3, byrow=TRUE)
m2 = 2:4

t(t(m1) + m2)

#     [,1] [,2] [,3]
#[1,]    3    5    7
#[2,]    6    8   10
#[3,]    9   11   13

答案 2 :(得分:0)

如果您正在寻找替代方案,您还可以使用下面的方法将行t转换为矩阵,这告诉R重复该行,但是m有多行:

t <- matrix(rep(c(2,3,4), length(m[,1])), nrow = 3, ncol=3, byrow = TRUE)

然后

new_m <- m+t

原始m的数据:

m <- matrix(c(1, 4, 7, 2, 5, 8, 3, 6, 9), nrow = 3, ncol = 3)