如何在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 按多个条件进行过滤