【发布时间】:2015-11-17 15:23:30
【问题描述】:
我想通过一个矩阵循环一个方程并将结果存储在一个立方体中,这样 Cube[,,1] 就是矩阵的一个结果。
我目前已经写了以下
PercentileReturn <- array(NA, c(RetAge,length(Percentile)+1,nrow(Demo)))
for (i in 1:nrow(Demo)) {
PercentileReturn[,,i] <-
PercentileReturn[Demo[i,3]:RetAge,
1:length(Percentile),1]<-
t(apply((apply(AnnualReturns[(Demo[i,3]):RetAge,],2,cumprod)) *
Demo[i,4],1,function(x){quantile(x, Percentile, na.rm=T)}))
}
它会导致以下错误
Error in PercentileReturn[, , i] <- PercentileReturn[Demo[i, 3]:RetAge, :
number of items to replace is not a multiple of replacement length
我认为这是因为我尝试插入的矩阵不是 3 维的。
基本上一个精简的版本是有一个 array(NA,c(2,2,3)) 填充矩阵乘以向量 所以说
Matrix * vector c(1,2,3)
[,1] [,2]
[1,] 4 4
[2,] 4 4
会产生以下多维数据集
, , 1
[,1] [,2]
[1,] 4 4
[2,] 4 4
, , 2
[,1] [,2]
[1,] 8 8
[2,] 8 8
, , 3
[,1] [,2]
[1,] 12 12
[2,] 12 12
【问题讨论】:
标签: r