小编典典

if/while(条件)错误{:缺少需要 TRUE/FALSE 的值

all

我收到此错误消息:

Error in if (condition) { : missing value where TRUE/FALSE needed

或者

Error in while (condition) { : missing value where TRUE/FALSE needed

这是什么意思,我该如何预防?


阅读 91

收藏
2022-08-03

共1个答案

小编典典

评估condition结果为NA. if条件必须有 aTRUE或结果FALSE

if (NA) {}
## Error in if (NA) { : missing value where TRUE/FALSE needed

作为计算结果,这可能会意外发生:

if(TRUE && sqrt(-1)) {}
## Error in if (TRUE && sqrt(-1)) { : missing value where TRUE/FALSE needed

要测试一个对象是否丢失,请使用is.na(x)而不是x == NA.


if (NULL) {}
## Error in if (NULL) { : argument is of length zero

if ("not logical") {}
## Error: argument is not interpretable as logical

if (c(TRUE, FALSE)) {}
## Warning message:
## the condition has length > 1 and only the first element will be used
2022-08-03