[R] style question: returning multiple arguments - structure or list
Prof Brian D Ripley
ripley at stats.ox.ac.uk
Sat Jul 28 08:59:16 CEST 2001
On Fri, 27 Jul 2001, Kevin Murphy wrote:
> I have a question about what is considered good style in R.
>
> I have a function which returns several arguments, say [x,y,z]=f(),
> where sometimes I only care about the first few
> (so in Matlab, I can write e.g., [x,y] = f()).
>
> In R, there seem to be 2 ways to write this, both unsatisfying (to me):
>
> LIST
> f <- function() {
> ...
> list(x=x,y=y,z=z)
> }
> res <- f()
> x <- res$x; y <- res$y; z <- res$z
>
>
> STRUCTURE
> f <- function() {
> ...
> structure(x,y=y,z=z)
> }
> x <- f()
> y <- attr(x,"y"); z <- attr(x, "z")
>
> Which is considered better style, or does it just depend on the
> problem?
The latter. There's a third option, to create a new class and return an
object of that class, and write appropriate extractor functions.
If you look in the code base you will see many more uses of lists than
attributes, and heavy use of classes for returned lists.
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272860 (secr)
Oxford OX1 3TG, UK Fax: +44 1865 272595
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
More information about the R-help
mailing list