【发布时间】:2020-09-19 03:54:08
【问题描述】:
您好,我创建了一个包含以下循环的列表
portfolio_covlist2<-list()
for (i in 1:25) {
a<-covst[Stock.mix.2[i,],Stock.mix.2[i,]]
a<-list(matrix(a,nrow=2))
portfolio_covlist2[i] <- a
}
然后数据看起来像这样
[[1]]
[,1] [,2]
[1,] 0.009168161 0.001283940
[2,] 0.001283940 0.002723437
[[2]]
[,1] [,2]
[1,] 0.021906044 0.002600486
[2,] 0.002600486 0.009508103
然后我希望能够将这些相乘
w2*portfolio_covlist2[1]*t(w2)
给我一个混合的标准偏差。但我收到此错误:
Error in w2 * portfolio_covlist2[1] :
non-numeric argument to binary operator
w 个向量确认为数字,但列表类型不...帮助!
谢谢
【问题讨论】:
-
w2*portfolio_covlist2[[1]]*t(w2)?如果它是一个列表,那么portfolio_covlist2[1]仍然会返回一个列表,其中只有一个元素,这恰好是您的矩阵。[[1]]返回元素本身。试试list(1:3,2:4)[1]和list(1:3,2:4)[[1]]看看有什么不同。 -
您能以可重现的格式共享数据吗?我们可以自己复制和测试的东西吗?了解如何提供reproducible example。
-
天啊!!!我根本不需要将结果存储在列表中。我可以从代码中的 a 创建响应,然后将结果直接存储在新向量中!