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

后端 未结 3 606
[愿得一人]
[愿得一人] 2020-11-21 23:19

I received this error message:

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

or

Error in while (conditi         


        
相关标签:
3条回答
  • 2020-11-21 23:50

    I ran into this when checking on a null or empty string

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

    changed it to

    if (is.null(x) || x == '') {
    
    0 讨论(0)
  • 2020-11-21 23:53

    The evaluation of condition resulted in an NA. The if conditional must have either a TRUE or FALSE result.

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

    This can happen accidentally as the results of calculations:

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

    To test whether an object is missing use is.na(x) rather than x == NA.


    See also the related errors:

    Error in if/while (condition) { : argument is of length zero

    Error in if/while (condition) : argument is not interpretable as logical

    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
    
    0 讨论(0)
  • 2020-11-21 23:55

    this works with "NA" not for NA

    comments = c("no","yes","NA")
      for (l in 1:length(comments)) {
        #if (!is.na(comments[l])) print(comments[l])
        if (comments[l] != "NA") print(comments[l])
      }
    
    0 讨论(0)
提交回复
热议问题