From: Sundar Dorai-Raj <sundar.dorai-raj_at_pdf.com>

Date: Fri 19 Aug 2005 - 05:47:00 EST

*>
*

*>
*

> Hi, Ross,

*>
*

*> Add "from" to your function:
*

*>
*

*> test <- function(x, from = 0, ...) {
*

*> curve(x, from = from, ...)
*

*> }
*

*>
*

*> Or another way:
*

*>
*

*> test <- function(x, ...) {
*

*> dots <- list(...)
*

*> if(!hasArg(from)) dots$from <- 0
*

*> dots$expr <- x
*

*> do.call("curve", dots)
*

*> }
*

*>
*

R-help@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 Received on Fri Aug 19 05:52:31 2005

Date: Fri 19 Aug 2005 - 05:47:00 EST

Sundar Dorai-Raj wrote:

*>
*

> Ross Boylan wrote:

*>
*

>>I want to add an argument if it is not present. Following the Green >>Book, p. 337: >>test <- function(x, ...){ >> dots <- list(...) >> if (!hasArg(from)) >> from <- 0 >> else >> from <- dots$from >> curve(x, from=from, ...) >>} >> >> >> >>>test(sin) >>>test(sin, from=4) >> >>Error in curve(x, from = from, ...) : formal argument "from" matched by >>multiple actual arguments >> >>The FAQ says, in the section on differences between R and S, >>"R disallows repeated formal arguments in function calls." >> >>That seems a perfectly reasonable rule, but how do I handle this >>situation? >>

> Hi, Ross,

I didn't check this example, but for curve, since `x' is an expression, we should actually do the following:

test <- function(x, ...) {

dots <- list(...)

if(!hasArg(from)) dots$from <- 0

dots$expr <- substitute(x)

invisible(do.call("curve", dots))

}

test(x^3 - 3 * x, to = 5)

test(x^3 - 3 * x, from = -5, to = 5)

**HTH,
**
--sundar

> I actually prefer the latter if I'm changing many arguments. I do this

*> quite often when writing custom lattice plots and I want to override
**> many of the defaults.
**>
**> HTH,
**>
**> --sundar
**>
**> ______________________________________________
**> R-help@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
*

R-help@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 Received on Fri Aug 19 05:52:31 2005

*
This archive was generated by hypermail 2.1.8
: Sun 23 Oct 2005 - 15:32:14 EST
*