`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).

## Details

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

## 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_lifecycle_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 × 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
```