On Dec 10, 2009, at 3:47 PM, Steve Lianoglou wrote:
Hi Ramya,
On Dec 10, 2009, at 3:29 PM, David Winsemius wrote:
On Dec 10, 2009, at 2:55 PM, Ramya wrote:
I have tow vectors one is the subset of another
x is a subset of X Both are vectors with n elements
X[X %in% x] would give me x again rite because it is a subset but
i want all
those are not in x from X.
X[which(X != x)] should this do that
One way to increase your proficiency in R is to break out your
statements so that each line does 1 thing.
You should look at the object that `X != x` returns to you. [Shuffle
the elements in X and x and then see how that changes for extra
credit]
Then look at what `which(X != x)` gives you.
Doing that, you'd see why what you tried originally didn't work.
Perhaps you think R _should_ read your mind, but we are not there
yet. Try instead:
X[!(X %in% x)]
There are also set-like functions in R, which might fit your brain-
way of thinking:
Get elements that are in both x and X:
intersect(X,x)
Get elements in X that are not in x
setdiff(X,x)
Yes there are, and beware that the setdiff function is an asymmetric
version rather than what I expected, which was the complement of the
intersection;
> ?setdiff
> X
[1] "H" "J" "E" "A" "F" "D" "B"
> x
[1] "H" "B" "F" "A" "Z"
> setdiff(union(X,x), intersect(X,x)) # which is what I expected
[1] "J" "E" "D" "Z"
> setdiff(X,x) # what you get
[1] "J" "E" "D"
--
Steve Lianoglou
Graduate Student: Computational Systems Biology
| Memorial Sloan-Kettering Cancer Center
| Weill Medical College of Cornell University
Contact Info: http://cbio.mskcc.org/~lianos/contact
David Winsemius, MD
Heritage Laboratories
West Hartford, CT
______________________________________________
R-help@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.