This question already has answers here:
Error in if/while (condition) {: missing Value where TRUE/FALSE needed
(3个答案)
在10个月前关闭。
这是一个可重现的示例:
我想查看tac2是否小于tac的80%,如果是,则将下降幅度限制为tac的80%。
if((tac2 [i]-tac) 缺少需要TRUE/FALSE_的值
(3个答案)
在10个月前关闭。
这是一个可重现的示例:
我想查看tac2是否小于tac的80%,如果是,则将下降幅度限制为tac的80%。
if((tac2 [i]-tac) 缺少需要TRUE/FALSE_的值
tac = 1000
tac2= c(790,600,678,900,1200,300,800,9000)
R
for (i in tac2) {
if ((tac2[i]-tac) < tac*.8) {
tac2[i] <- tac - tac*.2
} else {
tac2[i] = tac2[i]
print(tac2)
}
}
最佳答案
看来问题出在for (i in tac2)
中。您的i将成为tac2中的值,因此在循环的第一次迭代中,我为790。由于tac2 [790]不存在,您将收到错误消息。
相反,请尝试for (i in 1:length(tac2))
。无论tac2多么长,都会在数字1上循环。
10-08 17:42