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 >