Re: [R] passing arguments via "..."

From: Bert Gunter <gunter.berton_at_gene.com>
Date: Tue, 29 Mar 2011 11:20:23 -0700

Passing arguments can be tricky ( take a look at plot.default !!). There may be a better approach then what you have considered.

hist is (S3) generic. So make a method for an S3 class that will handle data structures like your x. Something like:

class(x ) <- c("zebra",class(x))
hist.zebra <- function(x,...)
{

########################################
## code to process x and turn it into a class for which an existing hist method exists
## say you have turned it into y, of class "gnu" and there's an existing hist.gnu method (use ## methods(hist) to see what already exists). Then just :
#############################################

hist(y,...)
}

Whatever was in your original ... argument to hist.zebra will now get passed to the ... argument of hist.gnu, which is what will be called by the generic hist(). hist.gnu will use default argument values as needed.

Is this what you want?

See:

AN Intro to R (have you read it?) for more on S3 methods and also

?UseMethod

On Tue, Mar 29, 2011 at 10:47 AM, Cable, Samuel B Civ USAF AFMC AFRL/RVBXI <Samuel.Cable_at_hanscom.af.mil> wrote:
> I would like to do something like the following:

>

> Fancyhist<-function(x,...) {
>

> # first, process x into xprocess somehow, then ...
>

>  if (is.null(breaks)) {   # yes, I know this is wrong
> # define the histogram breaks somehow, then call hist:
>     hist(xprocess,breaks=breaks,...)
>  } else {
> # use breaks give in calling argument
>     hist(xprocess,...)
>  }
>

> }
>

> But, those of you who know R better than I do have already spotted that
> "is.null(breaks)" just won't work.  Neither does "exists" or "missing".
>

> I can think of ways to do this involving new arguments with new names --
> like "histbreaks" or something -- but that seems inelegant.
>

> Is there a way to do what I am trying to do here?
>

> Thanks.
>

> ______________________________________________
> R-help_at_r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
-- 
Bert Gunter
Genentech Nonclinical Biostatistics

______________________________________________
R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Received on Tue 29 Mar 2011 - 18:32:00 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Tue 29 Mar 2011 - 18:40:25 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive