Як використовувати функцію 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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *