Re: [R] data.frame indexing

From: Ben Tupper <PemaquidRiver_at_tidewater.net>
Date: Mon, 28 Apr 2008 10:54:39 -0400

On Apr 28, 2008, at 10:40 AM, Georg Ehret wrote:

> Dear R Community, A simple problem (for some of you): I wish to
> index a
> data.frame by all elements NOT in my index
> E.g.:
>> a<-as.data.frame(matrix(rnorm(100),nrow=10,ncol=10))
>> b<-which(a$V1>0.8)
>> b
> [1] 1 4 6 10
>> a_indexb<-a[b,]
>> a_notIndexB<-a[!b,]
>> nrow(a_notIndexB)

> [1] 0
>
> Indexing a on b is not a problem (a_indexb), but how can do get
> only the
> elements left if I take out the elements indexed with b?
>

Hi,

I think one of the most wonderfully magic things about R is that it can use a logical array to index other things (like a data frame). You could use the extra step with which, but in your case you can bypass that step. Here is a simple example...

 > a <- data.frame(V1 = seq(-5,5), V2 = seq(-5,5))  > a

    V1 V2

1  -5 -5
2  -4 -4
3  -3 -3
4  -2 -2
5  -1 -1

6 0 0
7 1 1
8 2 2
9 3 3
10 4 4
11 5 5
 > b <- a$V1 > 0
 > b
  [1] FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE  > a[b,]

    V1 V2
7 1 1
8 2 2
9 3 3
10 4 4
11 5 5
 > a[!b,]
   V1 V2

1 -5 -5
2 -4 -4
3 -3 -3
4 -2 -2
5 -1 -1

6 0 0

Hope that helps!

Ben



R-help_at_r-project.org 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. Received on Mon 28 Apr 2008 - 16:22:32 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Mon 28 Apr 2008 - 16:30:31 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive