Hello,

How can I know whether my data frame contains NA/-Inf/Inf values or not? I want to know the variable name too in which the missing or infinite values are present.

Thanks

Hello,

How can I know whether my data frame contains NA/-Inf/Inf values or not? I want to know the variable name too in which the missing or infinite values are present.

Thanks

The two functions you are looking for are `is.na`

and `is.infinite`

. You can test for both by wrapping them with the function `any`

. So `any(is.na(x))`

will return `TRUE`

if any of the values of the object are `NA`

. And `any(is.infinite(x))`

will return the same for `-Inf`

or `Inf`

.

If you would like to check this over a data frame, `apply`

will help.

```
apply(df, 2, function(x) any(is.na(x)))
```

Will test the condition by column.

In the case that you would like to test for both conditions, you can add the pipe operator, `|`

.

```
any(is.na(x) | is.infinite(x))
```

It reads, “Does any member of the variable `x`

have the value `NA`

or `-Inf`

or `Inf`

?”

To your second question, if you want to learn the names of the column with these values, assign the output of our apply function above to a variable, and subset the column names by that new variable:

```
indx <- apply(df, 2, function(x) any(is.na(x) | is.infinite(x)))
colnames[indx]
```