首页 > 解决方案 > 乘矩阵 R

问题描述

我将如何乘法:

                    BNP.PA.Adjusted ACA.PA.Adjusted UG.PA.Adjusted
BNP.PA.Adjusted     0.010129967     0.009577789    0.007148473
ACA.PA.Adjusted     0.009577789     0.012127668    0.007340544
UG.PA.Adjusted      0.007148473     0.007340544    0.015503678

经过 :

c(0.3 , 0.2 , 0.5)

为了得到 :

                    BNP.PA.Adjusted       ACA.PA.Adjusted       UG.PA.Adjusted
BNP.PA.Adjusted     0.010129967x0.3x0.3   0.009577789x0.2x0.3   0.007148473x0.5x0.3
ACA.PA.Adjusted     0.009577789x0.3x0.2   0.012127668x0.2x0.2   0.007340544x0.5x0.2
UG.PA.Adjusted      0.007148473x0.3x0.5   0.007340544x0.2x0.5   0.015503678x0.5x0.5

我尝试使用%*%:MaMatrix <- cov_m %*% Poids但这只是

                    BNP.PA.Adjusted   ACA.PA.Adjusted   UG.PA.Adjusted
BNP.PA.Adjusted     0.010129967x0.3   0.009577789x0.2   0.007148473x0.5
ACA.PA.Adjusted     0.009577789x0.3   0.012127668x0.2   0.007340544x0.5
UG.PA.Adjusted      0.007148473x0.3   0.007340544x0.2   0.015503678x0.5

我错过了什么?

标签: rmatrix

解决方案


outer上一个选项vector然后直接相乘

m1 <- outer(v1, v1)

或如@user20650 建议的那样 ( tcrossprod)

m1 <- tcrossprod(v1)
cov_m * m1

-输出

#               BNP.PA.Adjusted ACA.PA.Adjusted UG.PA.Adjusted
#BNP.PA.Adjusted    0.0009116970    0.0005746673   0.0010722709
#ACA.PA.Adjusted    0.0005746673    0.0004851067   0.0007340544
#UG.PA.Adjusted     0.0010722709    0.0007340544   0.0038759195

数据

v1 <- c(0.3, 0.2, 0.5)

cov_m <- structure(c(0.010129967, 0.009577789, 0.007148473, 0.009577789, 
0.012127668, 0.007340544, 0.007148473, 0.007340544, 0.015503678
), .Dim = c(3L, 3L), .Dimnames = list(c("BNP.PA.Adjusted", "ACA.PA.Adjusted", 
"UG.PA.Adjusted"), c("BNP.PA.Adjusted", "ACA.PA.Adjusted", "UG.PA.Adjusted"
)))

推荐阅读