Как использовать complete.cases в R (с примерами)


Вы можете использовать функцию complete.cases() в R, чтобы удалить пропущенные значения в векторе, матрице или фрейме данных.

Эта функция использует следующий базовый синтаксис:

#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', ...)]), ]

В следующих примерах показано, как использовать эту функцию на практике.

Пример 1: удаление пропущенных значений из вектора

Следующий код показывает, как удалить все значения NA из вектора:

#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

Пример 2: удалить строки с NA в любом столбце фрейма данных

В следующем коде показано, как удалить строки со значениями NA в любом столбце фрейма данных:

#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

Пример 3: удаление строк с NA в определенных столбцах фрейма данных

В следующем коде показано, как удалить строки со значениями NA в определенных столбцах фрейма данных:

#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

Дополнительные ресурсы

Как использовать «Это не NA» в R
Как заменить пропущенные значения в R
Как заменить NA строками в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.