[R] returning multiple values

R. Michael Weylandt michael.weylandt at gmail.com
Mon Jul 9 20:12:12 CEST 2012


No, you won't be able to simply call "a" and have that work.

R returns these in a single object with components (elements) named a,b,c,d

Here's a concrete example:

func <- function(x, y) return(list(a = x+1, b = y + 2))

out <- func(3, 5)

out[["a"]] # or out$a

out[["b"]] # or out$b

give the desired results.

If you just do


the value will be returned, but since it's not bound to a variable
name, simply thrown away.

Remember -- R is (almost) always pass-by-value, not by reference, and
has pretty strong scoping.


On Mon, Jul 9, 2012 at 1:02 PM, PRAGYA SUR <pragya1386 at gmail.com> wrote:
> I am running a program which has an output containing four vectors named
> meanfevs, meanfevns, pfevs, pfevns. I wish to return all four and be able
> to access them later. I used the command
> return(list(a=meanfevs,b=meanfevns,c=pfevs,d=pfevns))
> it did give me the ouput. However the values did not get stored in the
> vectors a,b,c and d and i am not being able to access them later by just
> calling a/b/c/d. Please help.
>         [[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.

More information about the R-help mailing list