Как использовать «Это не NA» в R


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

#return only values that are not NA
x <- x[ ! is. na (x)]

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

Пример 1: Возвращаемые значения, которые не являются NA в векторе

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

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

#return only values that are not NA
x <- x[ ! is. na (x)]

[1] 1 24 6 9

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

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

#create 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 in *z* column
df <- df[ ! (is.na(df$z)), ]

#view data frame
df

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

Пример 3. Возврат строк, которые не являются NA в нескольких столбцах

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

#create 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 in x or *y* column
df <- df[ ! (is.na(df$x)) & ! (is.na(df$y)), ]

#view data frame
df

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

Пример 4. Возврат строк, которые не являются NA ни в одном столбце

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

#create 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 in any column
df <- na.omit(df)

#view data frame
df

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

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

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