This does literally what you asked for
> x[x %in% y]
[1] 2 3
This is more likely what you want
> which(x %in% y)
[1] 2 3
>
It is an artifact of this example that the two results look the same. Here
is a different example
that distinguishes them, and in this example, %in% is probably not right
either. match() would be better.
> x <- sample(100, 11)
> x
[1] 99 76 97 65 20 70 32 6 80 16 51
> y <- c(65, 99)
> y
[1] 65 99
> x %in% y
[1] TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
> x[x %in% y]
[1] 99 65
> which(x %in% y)
[1] 1 4
> mm <- match(y, x, 0)
> mm
[1] 4 1
> x[mm]
[1] 65 99
>
We care because this is only useful if there is more than one column.
> xx <- cbind(x, 11:21)
> xx[mm,]
x
[1,] 65 14
[2,] 99 11
>
> ## compare to
> xx[which(x %in% y),] ## same rows but in wrong order
x
[1,] 99 11
[2,] 65 14
>
Rich
2012/1/8 Philipp Chapkovski <[email protected]>
> x<-1:11
> y<-2:3
>
> is there a way to do something like
> x[x==y]
> (which actually produce error)?
> I am really got stuck
>
> ______________________________________________
> [email protected] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html<http://www.r-project.org/posting-guide.html>
> and provide commented, minimal, self-contained, reproducible code.
>
[[alternative HTML version deleted]]
______________________________________________
[email protected] 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.