Как использовать функцию объединения() в 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() для замены всех пропущенных значений в векторе значением 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. Используйте метод coinesce() для возврата первого непропущенного значения в столбцах фрейма данных.

Предположим, у нас есть следующий кадр данных в 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *