Try this: relist(rep(1:length(l1), sapply(l1, length)), l1)
On Mon, Sep 13, 2010 at 3:41 PM, Sunny Srivastava <research.b...@gmail.com>wrote: > Dear R-Helpers, > I have a list l1 like: > > l1[[1]] > a b c > > l1[[2]] > d > > l1[[3]] > e f > > I want an output res like: > > res[[1]] > 1 1 1 > > res[[2]] > 2 > > res[[3]] > 3 3 > > Essentially, I want to replicate each index equal to the number of elements > present in that index. > > Below is what I do to accomplish this: > > l1 <- list(c("a", "b", "c"), "d", c("e", "f")) > res <- mapply(rep, seq_along(l1),times=(lapply(l1, length))) > > Is there a more elegant way of doing this (possibly using one (l/m)apply > function)? > > Thanks in advance for the help. > > Best Regards, > S. > > [[alternative HTML version deleted]] > > ______________________________________________ > 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. > -- Henrique Dallazuanna Curitiba-Paraná-Brasil 25° 25' 40" S 49° 16' 22" O [[alternative HTML version deleted]]
______________________________________________ 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.