[R] Subsetting a vector using an index with all missing values

Peter Langfelder peter@|@ng|e|der @end|ng |rom gm@||@com
Sat Jul 2 05:30:47 CEST 2022


Hi all,

I stumbled on subsetting behavior that seems counterintuitive and
perhaps is a bug. Here's a simple example:

> x = 1:10
> x[ rep(NA, 3)]
 [1] NA NA NA NA NA NA NA NA NA NA

I would have expected 3 NAs (the length of the index), not 10 (all
values in x). Looked at the documentation for the subsetting operator
`[` but found nothing indicating that if the index contains all
missing data, the result is the entire vector.

I can work around the issue for a general 'index' using a somewhat
clunky but straightforward construct along the lines of

> index = rep(NA, 3)
> x[c(1, index)][-1]
[1] NA NA NA

but I'm wondering if the behaviour above is intended.

Thanks,

Peter



More information about the R-help mailing list