[RsR] function naming for "robust ..."
Martin Maechler
m@ech|er @end|ng |rom @t@t@m@th@ethz@ch
Fri Jan 20 22:38:51 CET 2006
>>>>> "Claudio" == Claudio Agostinelli <claudio using unive.it>
>>>>> on Fri, 20 Jan 2006 12:50:43 +0100 (CET) writes:
Claudio> Ciao Martin, I would like, progressively,
Claudio> standardize my package 'wle' with the standard of
Claudio> robustbase. If think, for me, the easy way is to
Claudio> start with lm function (since you (you, matias and
Claudio> andreas) are working on roblm).
and robglm() / glmrob() {taking up Werner's naming suggestion
which I find very worth of consideration -- other takers, please.. ?}
Claudio> Are you thinking of a mechanism, like roblm(*,
Claudio> method="MM"), in this case there are any way for R
Claudio> to register "method" from other package once
Claudio> loaded, so that, for instance, we can have,
Claudio> automatically, roblm(*, method="WL") for my
Claudio> function? i.e., for the final user:
>> library(robustbase)
>> roblm(*, method="WL") Error: method "WL" for "roblm" not found
>> library(wle) # new version of the library
>> roblm(*, method="WL") # now it works
Claudio> Otherwise, what kind of convention should I use for the name:
Claudio> roblmwle
Claudio> robwlelm
Thank you for the interesting and very relevant question!
Indeed, "robustbase" itself should not contain all possible
methods, but rather just the 'base', and particular we had
agreed for the time being to focus on the methodology of the MMY
book.
OTOH, it makes very much sense to allow and encourage
``plugins'' from other packages {that will have a 'Depends: robustbase'}.
Claudio> This is a potential problem for extending the functions to any other new method
Claudio> available in the future. What is your suggestion?
well I hope we will converge some time in the future on how to
do robust linear regression .. :-) {well for p > n, we probably
still have slack ...}
In any case, I think it's a very good idea to allow for
plugins, and I also agree that we should do this by a naming
convention.
In some cases, we (the community of S programmers) have used the
convention to call the plugin for method <Meth> to function
<Func> " <Func>.<Meth> " where I think we should nowadays most
probably use <Func>_<Meth>
this would give lmrob_wle() or roblm_wle() for your plugin
function.
But note that we will not only have to agree on the naming
scheme, but also on exactly what arguments the function must
accept (it can have further optional ones) and what exactly its
return value has to look like.
But I think it's too early to get into these details already
now.
Martin
More information about the R-SIG-Robust
mailing list