[R] indexing lists

Joshua Wiley jwiley.psych at gmail.com
Mon Nov 15 22:38:11 CET 2010


Hi Chris,

Does this do what you're after?  It just compares each element of a
(i.e., a[[1]] and a[[2]]) to c(1, 2) and determines if they are
identical or not.

which(sapply(a, identical, y = c(1, 2)))

There were too many 1s floating around for me to figure out if you
wanted to find elements of a that matched the entire vector or
subelements of a that matched elements of the vector (if that makes
any sense).

HTH,

Josh

On Mon, Nov 15, 2010 at 1:24 PM, Chris Carleton
<w_chris_carleton at hotmail.com> wrote:
> Hi List,
>
> I'm trying to work out how to use which(), or another function, to find the
> top-level index of a list item based on a condition. An example will clarify
> my question.
>
> a <- list(c(1,2),c(3,4))
> a
> [[1]]
> [1] 1 2
>
> [[2]]
> [1] 3 4
>
> I want to find the top level index of c(1,2), which should return 1 since;
>
> a[[1]]
> [1] 1 2
>
> I can't seem to work out the syntax. I've tried;
>
> which(a == c(1,2))
>
> and an error about coercing to double is returned. I can find the index of
> elements of a particular item by
>
> which(a[[1]]==c(1,2)) or which(a[[1]]==1) etc that return [1] 1 2 and [1] 1
> respectively as they should. Any thoughts?
>
> C
>
>        [[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.
>



-- 
Joshua Wiley
Ph.D. Student, Health Psychology
University of California, Los Angeles
http://www.joshuawiley.com/



More information about the R-help mailing list