[Rd] Could you please add "time<-" as a generic function in the 'stats' package ?

Yohan Chalabi chalabi at phys.ethz.ch
Sun Mar 15 16:31:02 CET 2009


>>>> "JC" == John Chambers <jmc at r-project.org>
>>>> on Wed, 11 Mar 2009 19:10:29 -0700

   JC> The problems are related to masking objects (in this case ) in
   JC> the search list, not especially related to methods.
   JC>
   JC> It was in order to get around such problems that NAMESPACE
   JC> was added to
   JC> R.  You should use it, but it applies to evaluating calls
   JC> to functions
   JC> in the package, by avoiding the dependency on the order of
   JC> packages in
   JC> the search list.  To ensure correct results, you need to call a
   JC> function from your package (i.e., one that is not masked).  The
   JC> computations in the function will see what has been imported
   JC> into the
   JC> namespace.
   JC>
   JC> For example, if you do the following:
   JC>
   JC> 1.  add a NAMESPACE file, for example containing:
   JC>
   JC> import(stats)
   JC> import(zoo)
   JC> exportPattern(^[a-zA-Z])
   JC>
   JC> 2.  Do the computations in a function in your package,
   JC> say doDemo(),
   JC> with a few show(time()) lines added to print things.
   JC>
   JC> 3.  With the import(zoo), no need to define as an S3 generic.
   JC>
   JC> Then things behave with or without zoo attached, because the
   JC> computations are defined by your namespace.


Thank you for your responses.

'timeSeries' and 'zoo' both have functionality for time series
management. Although they have similar concepts, they are intrinsically
different; the former package uses S4 classes and the latter S3 classes.

Until now both packages have been able to coexist and have been  
independent from each other.

As I mentioned in my previous post, both packages define methods to  
extract timestamps of their respective classes with the function  
'time' .

I agree with you that if we had used a function name and its  
assignment version defined in 'zoo', we should import it from their  
namespace. But in this case, 'time<-' is the natural extension of a  
function already present in a base package.

Until now we defined the S3 generic 'time<-' so that both packages  
could coexist without needing to import the function from the  
namespace of the other. But this workaround won't work anymore if we  
define an S4 generic.

We are thus asking the R developers if they could add 'time<-'  as a  
generic in 'stats' because it is the natural extension of an existing  
function. This will ensure that packages can continue to coexist and  
remain independent.

Best regards,
Yohan

-- 
PhD student
Swiss Federal Institute of Technology
Zurich

www.ethz.ch



More information about the R-devel mailing list