One error you may encounter in R is:
Error in if (x[i] == NA) { : missing value where TRUE/FALSE needed
This error occurs when you compare some value to NA in an if statement in R using the syntax x == NA.
An if statement expects either a TRUE or FALSE value, so you need to use is.na(x) instead because this function always returns TRUE or FALSE.
How to Reproduce the Error
Suppose we attempt to loop through a list of values in a vector in R and print the word “missing” each time there is an NA value in the vector:
#define vector with some missing values x #loop through vector and print "missing" each time an NA value is encountered for(i in 1:length(x)) { if (x[i] == NA) { print('Missing') } } Error in if (x[i] == NA) { : missing value where TRUE/FALSE needed
We receive an error because we used the syntax x[i] == NA.
How to Fix the Error
We need to change the syntax to is.na(x) as follows:
#define vector with some missing values x #loop through vector and print "missing" each time an NA value is encountered for(i in 1:length(x)) { if (is.na(x[i])) { print('Missing') } } [1] "Missing" [1] "Missing"
Notice that we don’t receive an error and we’re able to print the word “missing” each time we encounter an NA value in the vector.
Additional Resources
The following tutorials explain how to fix other common errors in R:
How to Fix: NAs Introduced by Coercion
How to Fix: incorrect number of subscripts on matrix
How to Fix: number of items to replace is not a multiple of replacement length