Hans-Joerg Bibiko wrote: > > On 23 Jun 2008, at 10:23, Gundala Viswanath wrote: >> I apologize for this newbie question. But I can't seem >> to find in R online manual. >> >> 1. How can I return two values in a function? >> 2. How can I capture the values again of this function? >> >> myfunc <- function (array) { >> >> # do something with array >> # get something assign to "foo" and "bar" >> print(foo) >> print(bar) >> >> # how can I return "foo" and "bar" ? >> } >> >> # Is this the way to capture it? >> >> (nfoo,nbar) <- myfunc(some_array) >> > > One way would be : > > myfunc <- function (array) { > > # do something with array > # get something assign to "foo" and "bar" > result <- c(foo, bar) > return(result) > # how can I return "foo" and "bar" ? > } > > res <- myfunc(some_array) > res[1] > [1] "foo.stuff" > res[2] > [1] "bar.stuff" >
safer to wrap the results into a list; if both foo and bar are vectors, the returned result would be *one* vector rather that a collection of two vectors. so the generic pattern would be: <function> = function(<args>) { <body> list(<values>) } ?return vQ ______________________________________________ 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.