[R] Compare each element of a list to a vector
Patrick Burns
pburns at pburns.seanet.com
Sun Feb 3 19:33:18 CET 2013
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')
More information about the R-help
mailing list