[R] Using data=x or subset=y in user-defined functions

Manuel Morales Manuel.A.Morales at williams.edu
Thu Jun 8 17:54:57 CEST 2006


On Wed, 2006-06-07 at 21:36 +0100, Prof Brian Ripley wrote:
> I suggest you investigate with().

Thanks! Just to be sure, the following will do what I want?

eg.function <- function(x, data=NULL, subset=NULL, ...) {
    with(if(is.null(subset)) data else subset(data,subset), {
 
    ...

    })
}

> On Wed, 7 Jun 2006, Manuel Morales wrote:
> 
> > Dear list members,
> >
> > In some of my functions, I attach the data internally to allow subset
> > commands or to specify a data frame. This works well except for cases
> > where there is a "masking" conflict (which returns a warning). I see
> > some alternative listed in ?attach, but I'm not sure which of them do
> > what I'd like. Any suggestions?
> >
> > Below is how I've been setting up my functions:
> >
> > 
> >
> > # Set up environment
> > on.exit(detach(data))
> > attach(data)
> > if(!is.null(subset)) {
> >    data<-subset(data,subset)
> > detach(data)
> > attach(data)
> > }
> > subset = NULL
> >
> > # Function body here
> > output <- x
> > return(output)
> > }
> >
> > Thanks!
> >
> > Manuel
> >
> > ______________________________________________
> > 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
> >
>



More information about the R-help mailing list