Вы можете использовать следующий синтаксис, чтобы заменить все значения 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