[R] A long digression on packages

Jim Lemon bitwrit at ozemail.com.au
Mon Jun 6 00:18:35 CEST 2005


Hello again,

First, thanks for the help that got the latest plotrix package finished. 
I had been planning to write something about packages since Scott 
Waichler offered the gantt.chart function. Then Ben Bolker (who helped 
me to write the axis.break function) asked if I would be willing to 
include some of his plotting functions and almost immediately after that 
Sander Oom kindly donated the soil texture plotting function in the same 
way. I could procrastinate no longer.

There are now about 500 packages on CRAN. Some are focused, covering a 
particular area well, easy for the prospective user to discover their 
potential usefulness, while others are less so. I consider the plotrix 
package one of the former, and so as not to upset too many people, I 
will use the other package I contributed to CRAN as an example of the 
latter.

When I initially wrote concord, it was intended as a package of 
functions dealing with concordance and reliability. Okay, but I found 
Kendall's W so useful that I couldn't help including it, and somehow 
Page's test of ordered alternatives crept in and invited the Jonckheere 
test to the party and at that point I realized that I had maybe forty or 
fifty more or less useful functions floating around my R directory. Now 
many of these are probably floating around other people's R directories 
as well. Consider Cohen's kappa. The tabular method is included in 
e1071, my version has Cohen's plus two additional methods, and the 
recently contributed psy package has yet another version. Maybe there 
are still more encrypted in packages that I haven't even looked at.

The point of all this is that it would make many user's lives easier if 
there were less pandemonium in packages. The mistakes I have made in 
concord I have tried not to repeat in plotrix. Unless a user search of 
the documentation in packages materializes, it's become mighty hard to 
work out if the function you don't want to write has already been 
written. We also spend a lot of time responding to or deriding 
correspondents who ask about such things.

Would it be an idea to have informal R periphery teams, or even 
individual package lords, who would bear with, or maybe welcome, other 
people's functions? That is, I think plotrix has been greatly enhanced 
by recent contributions. Conversely, I wonder if it would be possible to 
shrink or maybe even evaporate concord by discovering duplicate methods 
in other packages or by contributing concord functions or parts thereof 
myself. It's not that I don't like maintaining concord or think the 
functions are worthless, just that I am mildly embarrassed to be adding 
to the duplication of effort and unnecessary volume of packages.

Feel free to comment upon this, although if you really want to rave, try 
it out on me first before clagging the list. Thanks for your attention.

Jim




More information about the R-help mailing list