首页 > 解决方案 > r 加权矩阵

问题描述

我有一个 nx5 矩阵。前6行如下

  x1    x2   x3  x4  x5
   1    30    3  43   0
   3    40    2  35   0
   3    50    7  72   0
   4    40   58  63  10
   1    20   19  61  10
   4    20    5  49   0

我还有代表权重的 nx1 矩阵列。

 w
 1.080042
 1.083287
 1.141108
 1.191246
 1.117395
 1.081123

我的目标是用这些权重对初始 nx5 矩阵进行加权。我试过 a%*%w了,但这导致了一个 5x1 矩阵。这不是我想要的。我的问题是如何生成加权 nx5 矩阵?谢谢。

标签: rmatrix-multiplicationweighted

解决方案


如果您只是将每列乘以向量,那么只需

mt * vc

mt你的矩阵(名称)在哪里vc,你的向量(名称)在哪里,例如取

mt <- (diag(5)+0.1)
vc <- c(1:5)
mt * vc

     [,1] [,2] [,3] [,4] [,5]
[1,]  1.1  0.1  0.1  0.1  0.1
[2,]  0.2  2.2  0.2  0.2  0.2
[3,]  0.3  0.3  3.3  0.3  0.3
[4,]  0.4  0.4  0.4  4.4  0.4
[5,]  0.5  0.5  0.5  0.5  5.5

如果您的权重在单列矩阵中,则首先将其转换为向量as.vector()


推荐阅读