Как заменить NA на ноль в dplyr


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

#replace all NA values with zero
df <- df %>% replace(is. na (.), 0)

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

#replace NA values with zero in column named *col1*
df <- df %>% mutate(col1 = ifelse(is. na (col1), 0, col1))

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

#replace NA values with zero in columns *col1* and *col2*
df <- df %>% mutate(col1 = ifelse(is. na (col1), 0, col1),
 col2 = ifelse(is. na (col2), 0, col2))

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

#create data frame
df <- data.frame(player=c('A', 'B', 'C', 'D', 'E'),
 pts=c(17, 12, NA, 9, 25),
 rebs=c(3, 3, NA, NA, 8),
 blocks=c(1, 1, 2, 4, NA))

#view data frame
df

 player pts rebs blocks
1 A 17 3 1
2 B 12 3 1
3 C NA NA 2
4 D 9 NA 4
5 E 25 8 NA

Пример 1. Замена всех значений NA во всех столбцах

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

library(dplyr)

#replace all NA values with zero
df <- df %>% replace(is. na (.), 0)

#view data frame
df

 player pts rebs blocks
1 A 17 3 1
2 B 12 3 1
3 C 0 0 2
4 D 9 0 4
5 E 25 8 0

Пример 2. Замена значений NA в определенном столбце

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

library(dplyr)

#replace NA values with zero in *rebs* column only
df <- df %>% mutate(rebs = ifelse(is. na (rebs), 0, rebs))

#view data frame
df

 player pts rebs blocks
1 A 17 3 1
2 B 12 3 1
3 C NA 0 2
4 D 9 0 4
5 E 25 8 NA

Пример 3. Замена значений NA в одном из нескольких столбцов

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

library(dplyr)

#replace NA values with zero in *rebs* and *pts* columns
df <- df %>% mutate(rebs = ifelse(is. na (rebs), 0, rebs),
 pts = ifelse(is. na (pts), 0, pts))

#view data frame
df

 player pts rebs blocks
1 A 17 3 1
2 B 12 3 1
3 C 0 0 2
4 D 9 0 4
5 E 25 8 NA

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

Как отфильтровать строки, содержащие определенную строку, с помощью dplyr
Как рассчитать относительные частоты с помощью dplyr
Как выбрать первую строку по группе с помощью dplyr

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