[R] style question: returning multiple arguments - structure or list
Ross Ihaka
ihaka at stat.auckland.ac.nz
Sat Jul 28 00:01:20 CEST 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 second of these looks a little odd to me. In the first x, y, and z
are treated symmetrically while the second is asymmetric.
You might also consider whether you want to unpackage the x, y and z
values from the list at all. If you are just using the returned values
you may as well refer to them as res$x, res$y and res$z.
Ross
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
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