Gregor Gorjanc
2006-May-01 13:00 UTC
[R] How to specify function arguments that are used "in different places"
Hello!
Subject is not very clear, but I hope my question will be;) I wrote a
function, which produces a plot and I have problems with arguments. For
the sake of example let us consider that my function looks like this
myfunc <- function(x, points=FALSE, lines=FALSE, ...)
{
## x is an object that is being plotted
plot(x$plotData, ...)
## one can also add some data on graph via points
points(x$pointsData, ...)
## one can also add some data on graph via lines
lines(x$linesData, ...)
}
My problem is in "..." argument. plot(), points() and lines() have so
many possible arguments, which is very nice, but how can I deal with
them in my scenario. For example, I might want to specify red color for
plot, blue for points and green for lines. Is it possible to handle such
a mixture, without specifiying zillion of arguments such as plotCol,
pointsCol, linesCol etc.? Perhaps something like ~ "points$..."?
Thanks!
--
Lep pozdrav / With regards,
Gregor Gorjanc
----------------------------------------------------------------------
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3 mail: gregor.gorjanc <at> bfro.uni-lj.si
SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europe fax: +386 (0)1 72 17 888
----------------------------------------------------------------------
"One must learn by doing the thing; for though you think you know it,
you have no certainty until you try." Sophocles ~ 450 B.C.
Gabor Grothendieck
2006-May-01 13:36 UTC
[R] How to specify function arguments that are used "in different places"
You could have a list of args for each one like this:
# test data
x <- list(data = c(1,3,5), points = c(2,4))
myfunc <- function(x, plot.args = NULL, points.args = NULL) {
do.call("plot", c(list(x$data), plot.args))
do.call("points", c(list(x$points), points.args))
}
myfunc(x, plot.args = list(col = "red"), points.args = list(col =
"blue"))
On 5/1/06, Gregor Gorjanc <gregor.gorjanc at gmail.com>
wrote:> Hello!
>
> Subject is not very clear, but I hope my question will be;) I wrote a
> function, which produces a plot and I have problems with arguments. For
> the sake of example let us consider that my function looks like this
>
> myfunc <- function(x, points=FALSE, lines=FALSE, ...)
> {
> ## x is an object that is being plotted
> plot(x$plotData, ...)
> ## one can also add some data on graph via points
> points(x$pointsData, ...)
> ## one can also add some data on graph via lines
> lines(x$linesData, ...)
> }
>
> My problem is in "..." argument. plot(), points() and lines()
have so
> many possible arguments, which is very nice, but how can I deal with
> them in my scenario. For example, I might want to specify red color for
> plot, blue for points and green for lines. Is it possible to handle such
> a mixture, without specifiying zillion of arguments such as plotCol,
> pointsCol, linesCol etc.? Perhaps something like ~ "points$..."?
>
> Thanks!
>
> --
> Lep pozdrav / With regards,
> Gregor Gorjanc
>
> ----------------------------------------------------------------------
> University of Ljubljana PhD student
> Biotechnical Faculty
> Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
> Groblje 3 mail: gregor.gorjanc <at> bfro.uni-lj.si
>
> SI-1230 Domzale tel: +386 (0)1 72 17 861
> Slovenia, Europe fax: +386 (0)1 72 17 888
>
> ----------------------------------------------------------------------
> "One must learn by doing the thing; for though you think you know it,
> you have no certainty until you try." Sophocles ~ 450 B.C.
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
http://www.R-project.org/posting-guide.html
>