Finding an R function

Date

13 September 2009

Topics
R

Suppose you want a function to fit a neural network. What’s the best way to find it? Here are three steps that help to find the elusive function relatively quickly.

First, use help.search("neural") or the shorthand ??neural. This will search the help files of installed packages for the word “neural”. Actually, fuzzy matching is used so it returns pages that have words similar to “neural” such as “natural”. For a stricter search, use help.search("neural",agrep=FALSE). The following results were returned for me (using the stricter search).

nnet::nnetHess             Evaluates Hessian for a Neural Network
nnet::nnet                 Fit Neural Networks
nnet::predict.nnet         Predict New Examples by a Trained Neural Net
tseries::terasvirta.test   Teraesvirta Neural Network Test for Nonlinearity
tseries::white.test        White Neural Network Test for Nonlinearity

If you want to look through packages that you have not necessarily installed, you could try using the findFn function in the sos package. This function searches the help pages of packages covered by the RSiteSearch archives (which includes all packages on CRAN). For example

require("sos")
findFn("neural")

returns 206 matches (on 13 September 2009) from over 60 packages. These are ordered based on a relevance score, so the top few packages on the list are probably the most useful. (There’s a good discussion of findFn here.)

To look even further afield, use RSiteSearch("neural") which will send your search to R site search. As well as CRAN packages, this covers the R-help mailing list archives, help pages, vignettes and task views.

Still no luck? Try Rseek.org. It’s a restricted Google search covering on R-related sites.

Finally, if all else fails, try asking a question on StackOverflow (make sure your question is tagged with “r”), or send your question to the R-help mailing list. Both usually solicit replies in under an hour. However, don’t do this without first trying to find the function using one of the other methods.