我一直在尝试运行此代码(下面这里),我收到此错误:
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
时出错
答案 0 :(得分:2)
可能因为qid2
和qid
长度不同,所以在某些时候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