[RsR] covrob --- some OOP-comments

Peter Ruckdeschel Peter@Ruckde@che| @end|ng |rom un|-b@yreuth@de
Wed Mar 22 18:06:33 CET 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
 
Hi Peter and Heinrich,

> During the last weeks we worked on a flexible wrapper
> for combining functions for robust estimation of
> location and covariance. This was seen as one of the
> main tasks of the working group on multivariate analysis
> in Treviso.

First of all thank you for providing this very flexible interface.
I had a look on your description in
http://www.statistik.tuwien.ac.at/rsr/groups/mva/Abstract.pdf
and like to comment on it:

(*) argument function.control:

For the moment, I agree with you  that the "..." as argument will
probably do.
         In the long run, however, a "capsulated" argument
function.control would
help to avoid name clashes in the named arguments (e.g. by partial
matching!)
and hence IMHO should be preferred.
This applies in particular if external developpers will call your
function within
their functions and hence have to pass their additional arguments
together with
yours to their functions.
Also a clearer structure is imposed and function calls become easier to
read than in
an unstructured list.

(*) accessor/replacement functions:

You do not mention accessor/replacement functions for your S4-class
"covstruct".  Replacement might not be desired external to /covrob/.
Like in the lm-structure, however, it would be nice if you could inspect
the slots of an object of class "covstruct" by such accessor functions.
E.g., if A is of class "covstruct", cov.classic(A) should return slot
cov.classic of A. As to programming, this is only book-keeping, but it
is handy for the user...

(*) S3 paradigm for plot,summary,print

Last issue: Why would you follow the S3-paradigm in defining plot,
print, summary
for "covstruct"? Wouldn't it be more consistent with S4 to also register
these functions
as S4 generics and then deriving particular methods by "setMethod"?
This would save you from declaring them in style  <function>.<class>.
More important, (later) S4 could give you more flexibility , e.g. using
a different dispatch
if plot takes a second (differently) classed argument.

Having made these points, I want to emphasize that this is /not/ to
criticize your work, which of course is a valuable step towards the goals
set in Treviso.

Thank you already
Peter



-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
 
iD8DBQFEIYQY1sqtPxlkLZ0RAve4AKC46HztUh+xsNDBrMpn01i3VwgT7ACgiIjB
HlV7Ih5J7R1I/tw1/06jP8M=
=kMVe
-----END PGP SIGNATURE-----


-------------- next part --------------
A non-text attachment was scrubbed...
Name: Peter.Ruckdeschel.vcf
Type: text/x-vcard
Size: 520 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-sig-robust/attachments/20060322/40f9f5df/attachment.vcf>


More information about the R-SIG-Robust mailing list