我想将矩阵A的每一行与矩阵B相加。一个具有预期结果的可重现示例:
set.seed(1)
A <- matrix(round(runif(15, 1, 15)), nrow = 3, ncol = 5)
B <- matrix(seq(100,500,100), nrow = 1, ncol = 5)
> A
[,1] [,2] [,3] [,4] [,5]
[1,] 5 14 14 2 11
[2,] 6 4 10 4 6
[3,] 9 14 10 3 12
> B
[,1] [,2] [,3] [,4] [,5]
[1,] 100 200 300 400 500
# Expected result
> C
[,1] [,2] [,3] [,4] [,5]
[1,] 105 214 314 402 511
[2,] 106 204 310 404 506
[3,] 109 214 310 403 512
答案 0 :(得分:1)
您可以使用sweep
添加A
和B
。
sweep(A, 2, B, "+")
# [,1] [,2] [,3] [,4] [,5]
#[1,] 105 214 314 402 511
#[2,] 106 204 310 404 506
#[3,] 109 214 310 403 512
您也可以使用col
:
A + B[col(A)]
# [,1] [,2] [,3] [,4] [,5]
#[1,] 105 214 314 402 511
#[2,] 106 204 310 404 506
#[3,] 109 214 310 403 512