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


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

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

#omit NA values from vector
x <- na. omit (x)

#omit rows with NA in any column of data frame
df <- na.omit(df)

#omit rows with NA in specific column of data frame
df <- df[ ! (is.na(df$column)), ]

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

Пример 1. Исключение значений NA из вектора

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

#define vector
x <- c(1, 24, NA, 6, NA, 9)

#omit NA values from vector
x <- na. omit (x)

x

[1] 1 24 6 9
attr(,"na.action")
[1] 3 5
attr(,"class")
[1] "omit"

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

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

#define vector
x <- c(1, 24, NA, 6, NA, 9)

#omit NA values from vector
x <- as. numeric (na. omit (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

#omit rows with NA value in any column data frame
df <- na.omit(df)

#view data frame 
df

 x y z
2 24 3 7
4 6 8 15
6 9 12 14

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

Чтобы опустить строки со значениями NA в определенном столбце фрейма данных, на самом деле проще использовать функцию is.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 *x* column
df <- df[ ! (is.na(df$x)), ]

#view data frame 
df

 x y z
1 1 NA NA
2 24 3 7
4 6 8 15
6 9 12 14

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

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

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