negative indexing with null index sets

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

negative indexing with null index sets

RKoenker
Negative indexing is often handy, but I'm in need of  an appropriate  
idiom
for handling  cases in which the index set can be null:

x <- rnorm(5)
a <- 1:5
s <- rep(FALSE,5)
y <- x[-a[s]]

# I'd like y == x  but instead one has x[-a[s]] == x[a[s]] ==  
numeric(0), which is rather
# unfortunate -- so far the best I have come up with is:

as <- ifelse(length(a[s]),-a[s],TRUE)
y <- x[as]

which, doesn't read well.  Apologies if this has been aired  
previously...

url:    www.econ.uiuc.edu/~roger            Roger Koenker
email    [hidden email]            Department of Economics
vox:     217-333-4558                University of Illinois
fax:       217-244-6678                Champaign, IL 61820

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Reply | Threaded
Open this post in threaded view
|

Re: negative indexing with null index sets

Gabor Grothendieck
Here are a few possibilities.  The first three
use seq_along and the last two use if and length:

x[ !seq_along(x) %in% a[s] ]

x[ !match(seq_along(x), a[s], 0) ]

x[ setdiff(seq_along(x), a[s]) ]

if (length(a[s])) x[-a[s]] else x

x[ if (length(a[s])) -a[s] else TRUE ]


On Thu, Jun 5, 2008 at 3:16 PM, roger koenker <[hidden email]> wrote:

> Negative indexing is often handy, but I'm in need of  an appropriate idiom
> for handling  cases in which the index set can be null:
>
> x <- rnorm(5)
> a <- 1:5
> s <- rep(FALSE,5)
> y <- x[-a[s]]
>
> # I'd like y == x  but instead one has x[-a[s]] == x[a[s]] == numeric(0),
> which is rather
> # unfortunate -- so far the best I have come up with is:
>
> as <- ifelse(length(a[s]),-a[s],TRUE)
> y <- x[as]
>
> which, doesn't read well.  Apologies if this has been aired previously...
>
> url:    www.econ.uiuc.edu/~roger            Roger Koenker
> email    [hidden email]            Department of Economics
> vox:     217-333-4558                University of Illinois
> fax:       217-244-6678                Champaign, IL 61820
>
> ______________________________________________
> [hidden email] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.