# How to Fix: missing value where true/false needed in R

Improve Article

Save Article

Improve Article

Save Article

In this article, we are going to see how to fix missing values where true/false is needed in R Programming Language.

## Why Does This Error Occur?

When we will compare the value with NA(Not available) putting into an “if statement” or “while statement”, then the ”missing value where true/false needed” error occurs is that you are passing an invalid value to “if statement” or “while statement”.

## Example 1: Fixing with variables

### How to Reproduce the Error

Here we will get the error because we used the syntax num == NA. We can not compare the value with NA number, this type of statement(If condition) always returns TRUE or FALSE value.

## R

 `num <- ``"2"` `if ``(num == ``NA``) {` `    ``print``(``"Number is :"``, ``NA``)` `}``else``{` `    ``print``(num)` `}`

Output:

Error in if (num == NA) {: missing value where TRUE/FALSE needed

### How to Fix the Error

We need to use is.na(Value) because it always returns TRUE or FALSE.

## R

 `num <- ``"2"` `if ``(``is.na``(num)) {` `    ``print``(``"Number is : NA"``)` `}``else``{` `    ``print``(num)` `}`

Output:

`[1] "2"`

## Example 2: Fixing with vector

Here we will get the error because we used the syntax vec[l] != NA. We can not compare the value with NA number, this type of statement(If condition) always returns TRUE or FALSE value.

## R

 `vec = ``c``(1, 0, ``NA``)` `for ``(l ``in` `1:``length``(vec)) {` `    ``if ``(vec[l] != ``NA``) ``print``(vec[l]);` `}`

Output:

Error in if (num == NA) {: missing value where TRUE/FALSE needed

You have to use the function is.na for your if statement to work.

## R

 `vec = ``c``(1, 0, ``NA``)` `for ``(l ``in` `1:``length``(vec)) {` `    ``if ``(!``is.na``(vec[l])) ``print``(vec[l])` `}`

Output:

`[1] 1 [1] 0`