如何在dplyr中使用coalesce()函数(带有示例)


您可以使用 R 中dplyr包中的coalesce()函数返回一个或多个向量的每个位置中的第一个非缺失值。

使用此功能有两种常见方法:

方法一:替换向量中的缺失值

 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 行 C 列的值为 NA,因为 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

请注意,C 列第 5 行中的 NA 值现已替换为值100

其他资源

以下教程解释了如何使用 dplyr 执行其他常见功能:

如何使用 dplyr 删除行
如何使用 dplyr 排列行
如何使用 dplyr 按多个条件进行过滤

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注