On Fri, Mar 30, 2012 at 6:40 PM, ivo welch <ivo...@gmail.com> wrote: > Dear R wizards: is there a clean way to assign to elements in a list? > what I would like to do, in pseudo R+perl notation is > > f <- function(a,b) list(a+b,a-b) > (c,d) <- f(1,2) > > and have c be assigned 1+2 and d be assigned 1-2. right now, I use the clunky > > x <- f(1,2) > c <- x[[1]] > d <- x[[2]]
Suppose for concreteness that we want to add the first component of the result to twice the second component of the result. Also lets name the components c and d. Then here are 4 approaches: f <- function(a,b) list(c = a + b, d = a - b) # 1 x <- f(1, 2) x[[1]] + 2 * x[[2]] # 2 with( f(1, 2), c + 2 * d ) # 3 attach( f(1, 2)) c + 2*d detach() # 4 Using https://stat.ethz.ch/pipermail/r-help/2004-June/053343.html list[c, d] <- f(1, 2) c + 2 * d -- Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.com ______________________________________________ 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.