Table of Contents
complete.cases() in R is a function that can be used to identify complete cases in a data set. This function returns a logical vector indicating which observations are complete, that is, they have no missing values. For example, if you have a data frame containing missing values, you can use complete.cases() to identify which rows have all complete data. This can be useful for data cleaning and manipulating data sets prior to analysis.
You can use the complete.cases() function in R to remove missing values in a vector, matrix, or data frame.
This function uses the following basic syntax:
#remove missing values from vector x <- x[complete.cases(x)] #remove rows with missing values in any column of data frame df <- df[complete.cases(df), ] #remove rows with NA in specific columns of data frame df <- df[complete.cases(df[ , c('col1', 'col2', ...)]), ]
The following examples show how to use this function in practice.
Example 1: Remove Missing Values from Vector
The following code shows how to remove all NA values from a vector:
#define vector x <- c(1, 24, NA, 6, NA, 9) #remove NA values from vector x <- x[complete.cases(x)] x [1] 1 24 6 9
Example 2: Remove Rows with NA in Any Column of Data Frame
The following code shows how to remove rows with NA values in any column of a data frame :
#define data frame df <- data.frame(x=c(1, 24, NA, 6, NA, 9), y=c(NA, 3, 4, 8, NA, 12), z=c(NA, 7, 5, 15, 7, 14)) #view data frame df x y z 1 1 NA NA 2 24 3 7 3 NA 4 5 4 6 8 15 5 NA NA 7 6 9 12 14 #remove rows with NA value in any column data frame df <- df[complete.cases(df), ] #view data frame df x y z 2 24 3 7 4 6 8 15 6 9 12 14
Example 3: Remove Rows with NA in Specific Columns of Data Frame
The following code shows how to remove rows with NA values in specific columns of a data frame :
#define data frame df <- data.frame(x=c(1, 24, NA, 6, NA, 9), y=c(NA, 3, 4, 8, NA, 12), z=c(NA, 7, 5, 15, 7, 14)) #view data frame df x y z 1 1 NA NA 2 24 3 7 3 NA 4 5 4 6 8 15 5 NA NA 7 6 9 12 14 #remove rows with NA value in y or z column df <- df[complete.cases(df[ , c('y', 'z')]), ] #view data frame df x y z 2 24 3 7 3 NA 4 5 4 6 8 15 6 9 12 14