当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R dplyr coalesce 找到第一个非缺失元素


给定一组向量,coalesce() 找到每个位置的第一个非缺失值。它的灵感来自 SQL COALESCE 函数,该函数对 SQL NULL 执行相同的操作。

用法

coalesce(..., .ptype = NULL, .size = NULL)

参数

...

<dynamic-dots>

一个或多个向量。这些将是recycled 相互对抗,并将被转换为它们的共同类型。

.ptype

声明所需输出类型的可选原型。如果提供,它将覆盖 ... 中向量的公共类型。

.size

声明所需输出大小的可选大小。如果提供,这将覆盖 ... 中向量的通用大小。

... 中向量的公共类型和公共大小具有相同类型和大小的向量。

也可以看看

na_if()NA 替换指定值。 tidyr::replace_na()NA 替换为值。

例子

# Use a single value to replace all missing values
x <- sample(c(1:5, NA, NA, NA))
coalesce(x, 0L)
#> [1] 2 0 3 4 0 5 1 0

# The equivalent to a missing value in a list is `NULL`
coalesce(list(1, 2, NULL), list(NA))
#> [[1]]
#> [1] 1
#> 
#> [[2]]
#> [1] 2
#> 
#> [[3]]
#> [1] NA
#> 

# Or generate a complete vector from partially missing pieces
y <- c(1, 2, NA, NA, 5)
z <- c(NA, NA, 3, 4, 5)
coalesce(y, z)
#> [1] 1 2 3 4 5

# Supply lists by splicing them into dots:
vecs <- list(
  c(1, 2, NA, NA, 5),
  c(NA, NA, 3, 4, 5)
)
coalesce(!!!vecs)
#> [1] 1 2 3 4 5
源代码:R/coalesce.R

相关用法


注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Find the first non-missing element。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。