missing: Missing, Finite, and Infinite Values in Rvecs

missingR Documentation

Missing, Finite, and Infinite Values in Rvecs

Description

Detect or remove missing and infinite values in rvecs. Operations are done independently on each draw, though na.omit(), na.exclude(), and na.fail() also look across draws.

Usage

## S3 method for class 'rvec'
anyNA(x, recursive = FALSE)

## S3 method for class 'rvec'
is.na(x)

## S3 method for class 'rvec'
na.exclude(object, ...)

## S3 method for class 'rvec'
na.omit(object, ...)

Arguments

x, object

An rvec.

recursive

Whether anyNA() should be applied recursively to lists. Ignored when x is an rvec.

...

Currently ignored.

Details

The behavior of the rvec methods for is.na(), is.nan(), is.finite(), and is.infinite() differs from the standard vctrs behavior, which is to return a logical vector with length equal to length(x). With rvecs, the standard vctrs behavior would entail summarising across draws, which is the job of the draws_* functions.

Value

  • anyNA() - A logical rvec with length 1.

  • is.na(), is.nan(), is.finite(), is.infinite() - A logical rvec with the same length as the original rvec.

  • na.omit(), na.exclude() - An rvec with the same class as the original rvec, minus any elements that have NAs in any draws.

  • na.fail() - The original rvec, or an error.

See Also

  • if_else_rvec() for modifying individual values within draws.

  • Base R functions is.na(), is.nan(), is.finite(), is.infinite(), anyNA(), na.omit(), na.exclude()

  • vctrs::vec_detect_missing() to test whether all draws for an observation are missing.

  • vctrs::vec_detect_complete() to test whether any draws for an observation are missing.

  • draws_any(), draws_all() to summarise across draws.

Examples

x <- rvec(list(c(1.2, NA),
               c(Inf, 3),
               c(-1, NaN)))

## return a logical rvec
is.na(x)
is.nan(x)
is.finite(x)
is.infinite(x)

## return a logical rvec with length 1
anyNA(x)

## summarise across draws
draws_any(anyNA(x))

## return an NA-free version of 'x'
na.omit(x)
na.exclude(x)

## use 'if_else_rvec' to modify values
## within rvec
if_else_rvec(is.na(x), 999, x)

## vctrs functions
library(vctrs, warn.conflicts = FALSE)
## all draws missing
vec_detect_missing(x)
## any draws missing
vec_detect_complete(x)

rvec documentation built on Aug. 8, 2025, 7:29 p.m.