Handling Missing Values in R Programming

08 Nov, 2021
As the name indicates, Missing values are those elements which are not known. NA or NaN are reserved words that indicate a missing value in R Programming language for q arithmetical operations that are undefined. 
Missing values are practical in life. For example, some cells in spreadsheets are empty. If an insensible or impossible arithmetic operation is tried then NAs occur. 
Missing Values in R, are handled with the use of some pre-defined functions: 
A logical vector is returned by this function that indicates all the NA values present. It returns a Boolean value. If NA is present in a vector it returns TRUE else FALSE.
R
x<- c(NA, 3, 4, NA, NA, NA)is.na(x)
Output: 
[1]  TRUE FALSE FALSE  TRUE  TRUE  TRUE
A logical vector is returned by this function that indicates all the NaN values present. It returns a Boolean value. If NaN is present in a vector it returns TRUE else FALSE.
R
x<- c(NA, 3, 4, NA, NA, 0 / 0, 0 / 0)is.nan(x)
Output: 
[1] FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE
For testing objects that are NA use is.na()
For testing objects that are NaN use is.nan()
There are classes under which NA comes. Hence integer class has integer type NA, the character class has character type NA, etc.
A NaN value is counted in NA but the reverse is not valid.
The creation of a vector with one or multiple NAs is also possible.
R
x<- c(NA, 3, 4, NA, NA, NA)x
Output: 
[1] NA  3  4 NA NA NA
There are two ways to remove missing values: 
Example 1: 
R
x <- c(1, 2, NA, 3, NA, 4)d <- is.na(x)x[! d]
Output: 
[1] 1 2 3 4
Example 2: 
R
x <- c(1, 2, 0 / 0, 3, NA, 4, 0 / 0)xx[! is.na(x)]
Output: 
[1]   1   2 NaN   3  NA   4 NaN
[1] 1 2 3 4
Function called complete.cases() can also be used. This function also works on data frames.
The modeling functions in R language acknowledge a na.action argument which provides instructions to the function regarding its response if NA comes in its way.
And hence this way the function calls one of the missing value filter functions. Missing Value Filter Functions alter the data set and in the new data set the value of NAs has been changed. The default Missing Value Filter Function is na.omit. It omits every row containing even one NA. Some other Missing Value Filter Functions are: 
na.omit– omits every row containing even one NA
na.fail– halts and does not proceed if NA is encountered
na.exclude– excludes every row containing even one NA but keeps a record of their original position
na.pass– it just ignores NA and passes through it
R
# Creating a data framedf <- data.frame (c1 = 1:8,                  c2 = factor (c("B", "A", "B", "C",                                 "A", "C", "B", "A"))) # Filling some NA in data framedf[4, 1] <- df[6, 2] <- NA # Printing all the levels(NA is not considered one)levels(df$c2) # fails if NA is encounteredna.fail (df) # excludes every row containing even one NAna.exclude (a)
Output: 
[1] "A" "B" "C"
Error in na.fail.default(df) : missing values in object
Calls: na.fail -> na.fail.default
Execution halted
Factor Vectors– is the symbol displayed in factor vectors for missing values.
NaN – This is a special case of NA only. It is displayed when an arithmetic operation yields a result which is not a number. For example, dividing zero by zero produces NaN.
kumar_satyam
R-basics
R-Factors
R Language
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Change Color of Bars in Barchart using ggplot2 in R
How to Split Column Into Multiple Columns in R DataFrame?
Group by function in R using Dplyr
How to Change Axis Scales in R Plots?
How to filter R DataFrame by values in a column?
R - if statement
Logistic Regression in R Programming
Replace Specific Characters in String in R
How to import an Excel File into R ?
Joining of Dataframes in R Programming