Here is a minor shortening of that solution: tapply(t0, unlist(t0), names)
On 4/11/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > Weiwei Shi wrote: > > > I am wondering if there is a quick way to "reverse" a list like this: > > > > t0 <- list(a=1, b=1, c=2, d=1) > > > > reverst t0 to t1 > > > > > t1 > > $`1` > > [1] "a" "b" "d" > > > > $`2` > > [1] "c" > > t1 <- tapply(unlist(t0),unlist(t0),function(x){names(x)}) > > works for your example. Not clear how ``general'' an answer > you want. > > If the entries of your list are not scalars, then the problem is much > harder I think. (And may not even be well posed.) But then you > should be using a *vector*, not a list. > > Don't use a chainsaw when you need a fretsaw. > > cheers, > > Rolf Turner > [EMAIL PROTECTED] > > ______________________________________________ > R-help@stat.math.ethz.ch 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@stat.math.ethz.ch 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.