Hi: Your clarification suggests Duncan was on the right track, so how about this:
x <- list(A=c("d", "e", "f"), B=c("d", "e"), C=c("d")) x2 <- unique(unlist(x)) w <- lapply(x, function(u) names(x)[which(x2 %in% u)]) names(w) <- x2 w $d [1] "A" "B" "C" $e [1] "A" "B" $f [1] "A" HTH, Dennis On Fri, Aug 5, 2011 at 10:04 AM, zhenjiang xu <zhenjiang...@gmail.com> wrote: > Exactly! Sorry I get others misunderstood. The uppercase/lowercase is > only a toy example (and a bad one; yours is better than mine). My > question is a more general one: a list is basically a one-to-many > matching, from the names of a list to the elements belonging to each > name. I'd like to reverse the matching, from all the elements to the > names of the list. > > On Fri, Aug 5, 2011 at 12:53 PM, Duncan Murdoch > <murdoch.dun...@gmail.com> wrote: >> On 05/08/2011 12:05 PM, zhenjiang xu wrote: >>> >>> Hi R users, >>> >>> I have a list: >>> > x >>> $A >>> [1] "a" "b" "c" >>> $B >>> [1] "b" "c" >>> $C >>> [1] "c" >>> >>> I want to convert it to a lowercase-to-uppercase list like this: >>> > y >>> $a >>> [1] "A" >>> $b >>> [1] "A" "B" >>> $c >>> [1] "A" "B" "C" >>> >>> In a word, I want to reverse the list names and the elements under >>> each list name. Is there any quick way to do that? Thanks >> >> I interpreted this question differently from the others, and your example is >> ambiguous as to which is the right interpretation. I thought you wanted to >> swap names and elements, so >> >>> x <- list(A=c("d", "e", "f"), B=c("d", "e"), C=c("d")) >>> x >> $A >> [1] "d" "e" "f" >> >> $B >> [1] "d" "e" >> >> $C >> [1] "d" >> >> would become >> >>> list(d=c("A", "B", "C"), e=c("A", "B"), f="A") >> $d >> [1] "A" "B" "C" >> >> $e >> [1] "A" "B" >> >> $f >> [1] "A" >> >> I don't know a slick way to do this; I'd just do it by brute force, looping >> over the names of x. >> >> Duncan Murdoch >> > > > > -- > Best, > Zhenjiang > > ______________________________________________ > 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. > ______________________________________________ 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.