首页 文章

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

提问于
浏览
1

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

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时出错

1 回答

  • 2

    可能因为 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
    

相关问题