Answers:
的评估condition
结果为NA
。该if
条件必须有一个TRUE
或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 / while(condition){:参数长度为零时出错
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
NA
任何一方。如果我定义:x = NA
然后执行一个操作,if (x == NA){ ... }
则当解析器检查double equals的左侧时,将在运行时引发此错误。要纠正此错误,请确保条件中的每个变量都不使用NAis.na(your_variable)
。