Як використовувати функцію coalesce() у dplyr (з прикладами)
Ви можете використовувати функцію coalesce() із пакета dplyr у R, щоб повернути перше непропущене значення в кожній позиції одного або кількох векторів.
Існує два поширених способи використання цієї функції:
Спосіб 1: Замініть відсутні значення у векторі
library (dplyr)
#replace missing values with 100
coalescence(x, 100)
Спосіб 2: повертає перше непропущене значення в стовпцях кадру даних
library (dplyr)
#return first non-missing value at each position across columns A and B
coalesce(df$A, df$B)
Наступні приклади показують, як застосувати кожен метод на практиці.
Приклад 1: використовуйте coalesce(), щоб замінити відсутні значення у векторі
Наступний код показує, як використовувати функцію coalesce() , щоб замінити всі відсутні значення у векторі на значення 100:
library (dplyr) #create vector of values x <- c(4, NA, 12, NA, 5, 14, 19) #replace missing values with 100 coalescence(x, 100) [1] 4 100 12 100 5 14 19
Зауважте, що кожне значення NA у вихідному векторі було замінено на значення 100 .
Приклад 2: використовуйте coalesce(), щоб повернути перше непропущене значення в стовпцях кадру даних
Припустимо, що ми маємо наступний кадр даних у R:
#create data frame
df <- data. frame (A=c(10, NA, 5, 6, NA, 7, NA),
B=c(14, 9, NA, 3, NA, 10, 4))
#view data frame
df
AB
1 10 14
2 NA 9
3 5 NA
4 6 3
5 NA NA
6 7 10
7 NA 4
У наступному коді показано, як використовувати функцію coalesce() для повернення першого непропущеного значення в стовпцях A і B кадру даних:
library (dplyr)
#create new column that coalesces values from columns A and B
df$C <- coalesce(df$A, df$B)
#view updated data frame
df
ABC
1 10 14 10
2 NA 9 9
3 5 NA 5
4 6 3 6
5 NA NA NA
6 7 10 7
7 NA 4 4
Отриманий стовпець C містить перше непропущене значення в стовпцях A і B.
Зверніть увагу, що рядок 5 має значення NA у стовпці C, оскільки обидва стовпці A і B мали значення NA у цьому рядку.
Ми можемо просто додати додаткове значення до функції coalesce() для використання як значення, якщо в кожному стовпці є значення NA:
library (dplyr)
#create new column that coalesces values from columns A and B
df$C <- coalesce(df$A, df$B, 100)
#view updated data frame
df
ABC
1 10 14 10
2 NA 9 9
3 5 NA 5
4 6 3 6
5 NA NA 100
6 7 10 7
7 NA 4 4
Зауважте, що значення NA у рядку 5 стовпця C тепер замінено на значення 100 .
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші поширені функції за допомогою dplyr:
Як видалити рядки за допомогою dplyr
Як упорядкувати рядки за допомогою dplyr
Як фільтрувати за кількома умовами за допомогою dplyr