vec_detect_complete() detects "complete" observations. An observation is considered complete if it is non-missing. For most vectors, this implies that vec_detect_complete(x) == !vec_equal_na(x).

For data frames and matrices, a row is only considered complete if all elements of that row are non-missing. To compare, !vec_equal_na(x) detects rows that are partially complete (they have at least one non-missing value).

vec_detect_complete(x)

## Arguments

x A vector

## Value

A logical vector with the same size as x.

## Details

A record type vector is similar to a data frame, and is only considered complete if all fields are non-missing.

stats::complete.cases()

## Examples

x <- c(1, 2, NA, 4, NA)

# For most vectors, this is identical to !vec_equal_na(x)
vec_detect_complete(x)
#> [1]  TRUE  TRUE FALSE  TRUE FALSE
!vec_equal_na(x)
#> [1]  TRUE  TRUE FALSE  TRUE FALSE

df <- data_frame(
x = x,
y = c("a", "b", NA, "d", "e")
)
#> Warning: data_frame() was deprecated in tibble 1.1.0.
#> Please use tibble() instead.
#> This warning is displayed once every 8 hours.
#> Call lifecycle::last_warnings() to see where this warning was generated.

# This returns TRUE where all elements of the row are non-missing.
# Compare that with !vec_equal_na(), which detects rows that have at
# least one non-missing value.
df2 <- df
df2$all_non_missing <- vec_detect_complete(df) df2$any_non_missing <- !vec_equal_na(df)
df2
#> # A tibble: 5 x 4
#>       x y     all_non_missing any_non_missing
#>   <dbl> <chr> <lgl>           <lgl>
#> 1     1 a     TRUE            TRUE
#> 2     2 b     TRUE            TRUE
#> 3    NA NA    FALSE           FALSE
#> 4     4 d     TRUE            TRUE
#> 5    NA e     FALSE           TRUE