Как удалить строки с NA в одном конкретном столбце в R


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

#use is.na() method
df[!is.na(df$col_name),]

#use subset() method
subset(df, !is. na (col_name))

#use tidyr method
library(tidyr)
df %>% drop_na(col_name)

Обратите внимание, что каждый из этих методов даст одинаковые результаты.

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

#create data frame
df <- data.frame(a = c(NA, 14, 19, 22, 26),
 b = c(14, NA, 9, NA, 5),
 c = c(45, 56, 54, 57, 59))

#view data frame
df

 **a b c
1 NA 14 45
2 14 NA 56
3 19 9 54
4 22 NA 57
5 26 5 59

Метод 1: удалить строки с NA с помощью is.na()

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

#remove rows from data frame with NA values in column 'b'
df[!is.na(df$b),]

 a b c
1 NA 14 45
3 19 9 54
5 26 5 59

Способ 2: удалить строки с NA с помощью subset()

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

#remove rows from data frame with NA values in column 'b'
subset(df, !is. na (b))

 a b c
1 NA 14 45
3 19 9 54
5 26 5 59

Способ 3: удалить строки с NA с помощью drop_na()

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

library(tidyr)

#remove rows from data frame with NA values in column 'b'
df %>% drop_na(b)

 a b c
1 NA 14 45
3 19 9 54
5 26 5 59

Обратите внимание, что каждый из трех методов дал один и тот же результат.

Примечание. Полную онлайн-документацию по методу drop_na() можно найти здесь .

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

Как применить функцию к каждой строке во фрейме данных в R
Как получить номера строк в R
Как добавить строки во фрейм данных в R