Как использовать 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