Как заменить NA строками в R (с примерами)


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

#replace NA values in column x with "missing"
df$x %>% replace_na('none')

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

#replace NA values in column x with "missing" and NA values in column y with "none"
df %>% replace_na (list(x = 'missing', y = 'none')) 

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

Пример 1. Замена NA строками в одном столбце

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

library(tidyr)

df <- data.frame(status=c('single', 'married', 'married', NA),
 education=c('Assoc', 'Bach', NA, 'Master'),
 income=c(34, 88, 92, 90))

#view data frame
df

 status education income
1 single Assoc 34
2 married Bach 88
3 married <NA> 92
4 <NA> Master 90

#replace missing values with 'single' in status column
df$status <- df$status %>% replace_na('single')

#view updated data frame
df 

 status education income
1 single Assoc 34
2 married Bach 88
3 married <NA> 92
4 single Master 90

Пример 2. Замена NA строками в нескольких столбцах

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

library(tidyr)

df <- data.frame(status=c('single', 'married', 'married', NA),
 education=c('Assoc', 'Bach', NA, 'Master'),
 income=c(34, 88, 92, 90))

#view data frame
df

 status education income
1 single Assoc 34
2 married Bach 88
3 married <NA> 92
4 <NA> Master 90

#replace missing values with 'single' in status column
df <- df %>% replace_na (list(status = 'single', education = 'none'))

#view updated data frame
df 

 status education income
1 single Assoc 34
2 married Bach 88
3 married none 92
4 single Master 90

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

Как удалить строки с некоторыми или всеми NA в R
Как заменить NA на ноль в dplyr