我们如何在R中添加两个具有不同行和列的矩阵?

时间:2018-09-27 10:23:39

标签: r matrix sum col

我有两个矩阵:例如

temp1 <- matrix(c(1,2,3,4,5,6),2,3,byrow = T)
temp2 <- matrix(c(7,8,9),1,3,byrow = T)

temp1

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

temp2

       [,1] [,2] [,3]
 [1,]    7    8    9

我有两个行数相同但行数不同的矩阵。我想将这两个矩阵添加如下。我想知道是否有一种不用for语句添加R和应用函数的方法。

temp <- do.call(rbind,lapply(1:2,function(x){temp[x,]+temp2}))

温度

       [,1] [,2] [,3]
 [1,]    8   10   12
 [2,]   11   13   15

这个例子很简单,但实际上我需要使用100 * 100矩阵和1 * 100矩阵进行上述操作。在这种情况下,它花费的时间太长,因此我不想用于语句和应用函数。

1 个答案:

答案 0 :(得分:2)

您可以使用?sweep

temp1 <- matrix(c(1,2,3,4,5,6),2,3,byrow = T)
temp2 <- matrix(c(7,8,9),1,3,byrow = T)
sweep(temp1, 2, temp2, '+')

不幸的是,对清除的帮助确实很难理解,但是在此示例中,沿着temp1的第二维应用了带有参数“ temp2”的函数“ +”。

有关更多示例,请参见:How to use the 'sweep' function