循环索引:var [x + 1]下标超出范围

时间:2013-03-18 21:30:09

标签: r

我正在以矢量形式创建和存储一堆条件矩阵然后我回想起它们,将它们的结构返回到矩阵,并乘以一个矢量。该向量取决于先前的向量和当前矩阵。我试图在第二个循环中将其表示为[,y + 1]来索引输出矩阵上的向量。虽然我得到了渴望的结果,但我也得到一个中止程序的错误。我很感激有关如何处理此问题的建议。

env=rnorm(50, 22, 5)
les=matrix(nrow=9,ncol=length(env),byrow=T)
for (x in 1:length(env))
{
    a=sqrt(env[x])-3
    b=sqrt(env[x])-2        
    c=sqrt(env[x])-1
    A=.9
    B=.5
    C=.2

les[,x]=c(a,b,c,A,0,0,0,B,0)
}   
pop=matrix(nrow=3,ncol=length(env))
pop[,1]=c(1,2,2)
for (y in 1:length(env))
{

    pop[,y+1]=pop[,y]%*%matrix(les[,y],3,3,T)
}           
print(pop)  
barplot(pop)

1 个答案:

答案 0 :(得分:0)

R中的向量,矩阵和数组下标都是基于1的。如果你要在循环中提前1,你只需要迭代到length(env)-1