This is a great question. While really liking R a lot, I find its development model frustrating at times. I would say the best options are
- (Based on a comment from @Matifou) Check whether your idea has been previously discussed on
r-devel@r-project.org
. Although the archives don't provide a search interface, you can do a Google search prefixed with site:stat.ethz.ch/pipermail/r-devel
(e.g. site:stat.ethz.ch/pipermail/r-devel sweep
). Nabble also provides a searchable interface but is ugly and ad-heavy ...
- post the initial idea (without extensive code) to R-devel and see if you can get discussion/enthusiasm going. You have to be willing to push: for example, I managed to get some additional error-checking incorporated in
sweep
a few years ago (having it actually complain about mismatched dimensions rather than silently returning the wrong answer), but only after proposing the idea; waiting a week; re-raising the idea; sending some prototype code; testing it to make sure it didn't cause a performance hit; further discussion ...
- implement your idea as an add-on package. This is of course much harder if what you propose is a change to core R functionality (on the other hand, that kind of change will also be much harder to get accepted). On the other hand, you can implement just about anything you want in an add-on package, and it has several advantages. (1) Your code will be available for everyone to use immediately (if you post on R-forge, Rforge, GitHub, or CRAN); (2) it is a way for the ideas to get developed and refined without buy-in from R core; (3) even if it never gets accepted in R-core, it will still be around as a package.
- Try to find an existing utility or "misc" package to contribute to (for example, I have contributed to Jim Lemon's
plotrix
package, which is a compilation of small plotting utilities), and contact the maintainer/author.
- Post your wish-list items to the R bug tracker (with code attachments etc.). However, they will get seen by many fewer people than if you use options #1 or #2, and as a result are more likely to languish in the bug tracker without ever seeing the light of day.