对于矩阵中的值,从向量中获取值并替换矩阵值

时间:2014-01-20 13:17:36

标签: r matrix

确定复杂的标题,但实际上很容易解释: - )

我有一个Matrix M:

M<-matrix(c(1,3,4,5,7,6,2, 2,5,1,3,4,7,6, 1,7,3,2,5,4,6),nrow=3,ncol=7, byrow=TRUE)
     [,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,]    1    3    4    5    NA    6    2
[2,]    2    5    1    3    4    7    6
[3,]    1    7    3    2    5    4    NA

我有一个重量为W的矢量:

W<-c(0.4,0.2,0.15,0.1,0.07,0.05,0.02)

现在我想根据矩阵中的数字替换矩阵中的所有值,并在该相应位置使用向量中的值。所以我的结果矩阵(它需要是一个矩阵)应该是这样的:

[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,]  0.4  0.15 0.1   0.07  NA  0.05  0.2
[2,]  0.2  0.07 0.4   0.15  0.1   0.02  0.05
[3,]  0.4  0.02 0.15  0.2   0.07  0.1   NA

但我不知道如何实现这一点。

M2<-W[M]

没有达到预期的效果......有什么建议吗?

1 个答案:

答案 0 :(得分:3)

matrix(W[M], nrow=nrow(M))

     [,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,]  0.4 0.15 0.10 0.07   NA 0.05 0.20
[2,]  0.2 0.07 0.40 0.15 0.10 0.02 0.05
[3,]  0.4 0.02 0.15 0.20 0.07 0.10   NA