我想将向量的每个系数添加到矩阵的每个不同列。例如,如果我有一个向量和一个矩阵:
x <- c(1,2,3)
M <- matrix(c(5,6,7), nrow = 3, ncol = 3)
我想在第一列中的新矩阵M1
1 + 5,第二列中的2 + 6和最后一列中的3 + 7。
R中是否有任何执行此任务的功能?
答案 0 :(得分:2)
试试这个:
M + rep(x, each = nrow(M))
或者这个:
apply(M, 1, `+`, x)
结果:
[,1] [,2] [,3]
[1,] 6 7 8
[2,] 7 8 9
[3,] 8 9 10
编辑: akrun评论了另外两个很好的解决方案:
M + x[col(M)]
和
sweep(M, 2, x, "+")