[Rd] Re: [R] persp(), scatterplot3d(), "..." argument

From: Uwe Ligges <ligges_at_statistik.uni-dortmund.de>
Date: Wed 27 Oct 2004 - 19:00:28 EST

Jari Oksanen wrote:

> On Wed, 2004-10-27 at 11:11, Uwe Ligges wrote:
>

>>Jari Oksanen wrote:
>>
>>
>>>On Wed, 2004-10-27 at 10:04, Uwe Ligges wrote:
>>>
>>>
>>>This is a larger problem if 
>>>1. one of the underlying functions does not have "..."
>>>2. you want to relay arguments to two or more underlying functions, and
>>>3. you don't want to list all possible arguments in your function
>>>definition, since it is long enough already.
>>>
>>>The solution is still there, but it is (black) magic. For instance,
>>>'arrows' does not have "...", so you must add them with this magical
>>>mystery string:
>>>
>>>formals(arrows) <- c(formals(arrows), alist(... = ))
>>
>>
>>You don't need it for simple things like:
>>
>>   foo <- function(...){
>>       plot(1:10)
>>       arrows(1,1,7,7,...)
>>   }
>>
>>foo(lwd=5) # works!
>>

>
> That's why I had point 2 above: it really would work with simpler
> things. However, the following may fail:
>
>
>>parrow <- 

>
> function (x, y, ...)
> {
> plot(x, y, ...)
> arrows(0, 0, x, y, ...)
> invisible()
> }
>
>>parrow(runif(10), runif(10), col="red") # works
>>parrow(runif(10), runif(10), col="red", pch=16)

>
> Error in arrows(0, 0, x, y, ...) : unused argument(s) (pch ...)
>
> Adding formals would help.
>
>>As always, useful patches are welcome.
>>

>
>
> I don't know if this counts as a "useful patch", but it is patch anyway:
>
> diff -u2r old/arrows.R new/arrows.R
> --- old/arrows.R 2004-10-27 11:32:25.000000000 +0300
> +++ new/arrows.R 2004-10-27 11:32:53.000000000 +0300
> @@ -1,5 +1,5 @@
> "arrows" <-
> function (x0, y0, x1, y1, length = 0.25, angle = 30, code = 2,
> - col = par("fg"), lty = NULL, lwd = par("lwd"), xpd = NULL)
> + col = par("fg"), lty = NULL, lwd = par("lwd"), xpd = NULL, ...)
> {
> .Internal(arrows(x0, y0, x1, y1, length = length, angle = angle,
>

[moved to r-devel!]

At least a patch for the docs is missing (pointing out that passing args through "..." won't have any effect) - and depending on what R-core thinks about this issue.

Uwe Ligges

> cheers, jari oksanen



R-devel@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Wed Oct 27 19:14:54 2004

This archive was generated by hypermail 2.1.8 : Wed 03 Nov 2004 - 22:45:25 EST