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
评估导致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
要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 == '') {