Compare each element of a list to a vector
My attempt similar to Jim's is: which(sapply(datalist, function(z) all(z == x))) However, a safer approach is: which(sapply(datalist, function(z) isTRUE(all.equal(z, x)))) This latter approach avoids Circle 1 of 'The R Inferno'. http://www.burns-stat.com/documents/books/the-r-inferno/ Pat
On 03/02/2013 18:24, jim holtman wrote:
try this:
x<-c(1,2,3)
datalist<-list(c(1,2,3),c(2,3,4),c(3,4,5),c(4,5,6))
result <- sapply(datalist, function(.vec){
+ all(.vec == x) + })
result
[1] TRUE FALSE FALSE FALSE
On Sun, Feb 3, 2013 at 1:15 PM, <mtb954 at gmail.com> wrote:
Hello R-helpers, I have a vector x<-c(1,2,3) and a list that contains vectors datalist<-list(c(1,2,3),c(2,3,4),c(3,4,5),c(4,5,6)) and I would like to identify those list elements that are identical to x. I tried
datalist %in% x
[1] FALSE FALSE FALSE FALSE
but I am obviously using %in% incorrectly. I also tried messing around with
lapply but I can't figure out how to specify the function within lapply.
I would appreciate any suggestions you may have.
Many thanks!
Mark Na
[[alternative HTML version deleted]]
______________________________________________ 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.
Patrick Burns pburns at pburns.seanet.com twitter: @burnsstat @portfolioprobe http://www.portfolioprobe.com/blog http://www.burns-stat.com (home of: 'Impatient R' 'The R Inferno' 'Tao Te Programming')