For循环只是将最终值保存在数组中

时间:2014-09-21 11:23:26

标签: arrays r for-loop

我对R很新,我无法绕过for循环。我已经开发了一个基于循环的大马尔可夫模型(现在我知道它不是最有效的方式,但现在没有时间改变它)。模型的最终结果是一个参数j的每个值的一对矩阵。我试图做的一个例子是

for (j in 1:10){
  x<-3:13
  y<-rep(x[j],10)
  a<-matrix(y,5,2)
  y<-rep(2,10)
  b<-matrix(y,5,2)
  outcome<-array(0,dim=c(5,2,10))
  outcome[,,j]<-a*b

}
outcome

即:在每个循环的输出中保存数组的第三维。但是我认为它只保存了数组最后一个维度的最后一个循环。该模型要复杂得多,因此我无法真正改变基本结构,只能找到一种节省输出的方法。有什么想法吗? 希望它清楚,任何帮助都会非常感激!

1 个答案:

答案 0 :(得分:2)

从循环中删除outcome<-array(0,dim=c(5,2,10))!您在每次迭代时将数组初始化为零;这就是为什么除了最后一个矩阵之外的所有矩阵都是零的原因。 之前启动循环,它将正常工作。