if / while(condition){:缺less需要TRUE / FALSE的值时出错

我收到了这个错误信息:

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

要么

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

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

condition评估导致NAif条件必须具有TRUEFALSE结果。

 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 

要testing某个对象是否缺less,请使用is.na(x)而不是x == NA


另请参阅相关错误:

if / while(condition){:参数的长度为零时出错

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 

我检查一个null或空string时遇到了这个问题

 if (x == NULL || x == '') { 

改成它

 if (is.null(x) || x == '') {