[R] multi-argument returns
Steve Lianoglou
mailinglist.honeypot at gmail.com
Wed Feb 17 22:59:22 CET 2010
Hi,
On Wed, Feb 17, 2010 at 4:09 PM, Randall Wrong <randall.wrong at gmail.com> wrote:
> Dear R users,
>
> I have multi-argument returns in a function and I am warned by the program
> they are deprecated.
>
> I have found this in the R-help archives :
>
> http://tolstoy.newcastle.edu.au/R/help/01c/0319.html
> http://tolstoy.newcastle.edu.au/R/help/01c/0356.html
>
> Since I am not too good at programming, the list solution seems the better
> one for me. It is also the one advocated by Kevin Murphy.
>
> So rather than writing return(x,y,z), I should write at the end of my
> function :
>
> g=function() {
>
> #...
>
> result=list(x,y,z)
> return(result)
> }
>
> Is that correct ?
FYI, in R the last line of a function is its return value, so you
could simply do:
g <- function() {
list(x=x, y=y, z=z)
}
> Then shoud l use g[1] or g[[1]] ?
Just to avoid a mistake or ambiguity here, I wouldn't use "g" as a
variable because you are using that as your function name.
So after defining the function `g`, you could do:
myvalue <- g()
Then you would use: myvalue[[1]]
myvalue[1] would return you a list that has one element in it (the
first one), where as using myvalue[[1]] just gives you the first
element of the list.
Using "named" arguments when constructing your list as I did (eg.
list(x=x, ...)), you can then also do:
myvalue$x
Hope that helps,
-steve
--
Steve Lianoglou
Graduate Student: Computational Systems Biology
| Memorial Sloan-Kettering Cancer Center
| Weill Medical College of Cornell University
Contact Info: http://cbio.mskcc.org/~lianos/contact
More information about the R-help
mailing list