r-错误调试{:缺少需要TRUE/FALSE的值



我一直在尝试运行此代码(在下面),但我收到了以下错误:

for(i in 1:length(qid2))
{
  for(j in 1:length(qid))
  {
    if (qid2[i]==qid[i])
    {
        correct.option[i] = aid[j+cid[j]]
        print(correct.option[i])
    }
  }
}

if(qid2[i]==qid[i])中的错误{:缺少值,其中TRUE/FALSE需要

可能是因为qid2qid的长度不同,所以在某个点上i大于较短的长度,因此比较涉及不存在的元素。也许你想比较qid2[i]==qid[j]?下面的cat()语句是一个如何调试这类事情的示例。

qid2 <- 1:3
qid <- 1:2
for (i in 1:length(qid2)) {
   for(j in 1:length(qid)) {
       cat(i,j,qid[i],qid2[i],"n")
       if (qid2[i]==qid[i]) {
       }
   }
}
## 1 1 1 1 
## 1 2 1 1 
## 2 1 2 2 
## 2 2 2 2 
## 3 1 NA 3 
## Error in if (qid2[i] == qid[i]) {
##     (from #4) : missing value where TRUE/FALSE needed

最新更新