R循环错误:下标越界

时间:2016-06-25 00:22:31

标签: r loops

我正在尝试制作一个循环来探索模型组合。所以,我正在做以下事情:

# k=ncol(tmp1)-1
k = 5  ## example k without knowing "tmp1"

#number of models
M=2^k
#a matrix to store indicators/switch for predictors. Need two loops to do this (for loops)
incl_pred<-matrix(0,M,4)
tmpm=M
i=1
for(i in 1:k){
  tmpm=tmpm/(2)
  incl_pred[1:tmpm,i]=1
}
for(i in 2:k){
  tmpm=M
  for(j in i:k){
    incl_pred[((tmpm/2)+1):tmpm,j]=incl_pred[1:(tmpm/2),j]
    tmpm=tmpm/2
  }
}

但它给了我两个错误:

  

[<-*tmp*,1:tmpm,i,value = 1)出错:下标超出范围

  

incl_pred [1:(tmpm / 2),j]:下标超出范围时出错。

你能帮我解决一下吗?

谢谢你!

1 个答案:

答案 0 :(得分:0)

你应该设置:

incl_pred<-matrix(0,M,k)

因为你的内循环:

  for(j in i:k){
     incl_pred[((tmpm/2)+1):tmpm,j]=incl_pred[1:(tmpm/2),j]

最多可访问k的{​​{1}}列。