[R] data.frame indexing
Ben Tupper
PemaquidRiver at tidewater.net
Mon Apr 28 16:54:39 CEST 2008
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
More information about the R-help
mailing list