我将如何乘法:
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
Run Code Online (Sandbox Code Playgroud)
经过 :
c(0.3 , 0.2 , 0.5)
Run Code Online (Sandbox Code Playgroud)
为了得到 :
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
Run Code Online (Sandbox Code Playgroud)
我尝试使用%*%: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
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
一个选项outer在vector然后直接相乘
m1 <- outer(v1, v1)
Run Code Online (Sandbox Code Playgroud)
或者像@user20650 建议的那样 ( tcrossprod)
m1 <- tcrossprod(v1)
cov_m * m1
Run Code Online (Sandbox Code Playgroud)
-输出
# 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
Run Code Online (Sandbox Code Playgroud)
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"
)))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
74 次 |
| 最近记录: |