Skip to content
Back to formatted view

Raw Message

Message-ID: <CA+hbrhUmU4Bsu7HV-rjepBkcvLzyqe3rB7nrtHBKyiZiNkLg8g@mail.gmail.com>
Date: 2022-07-02T03:30:47Z
From: Peter Langfelder
Subject: Subsetting a vector using an index with all missing values

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