RE: [R] names of functions in a library

From: Prof Brian Ripley <ripley_at_stats.ox.ac.uk>
Date: Tue 07 Jun 2005 - 17:09:14 EST

On Mon, 6 Jun 2005, Liaw, Andy wrote:

>> From: Duncan Murdoch
>>
>> On 6/6/2005 4:43 PM, Omar Lakkis wrote:
>>> How can I get a list of the names of all exported functions
>> in a library?
>>> I load my library using library() and then want to
>> dynamically get all
>>> functions that start with "test." to dynamically execute them.
>>
>> Use search() to see all the _packages_ that have been loaded.
>> If yours
>> is second in the list (the typical spot just after calling the
>> unfortunately named library() function), then ls(2) will list
>> all of its
>> exports.
>
> Just to nitpick a bit: That lists all _objects_ in position 2, which may
> include objects that are not functions, although it's rare, if at all, that
> a package database would contain non-functions...

It's actually common: lazy-loaded datasets are there too, and 'base' has

[1] "F"          "LETTERS"        "R.version"      "R.version.string"
[5] "T"          "letters"        "month.abb"      "month.name"
[9] "pi"         "version"

'stats' has "p.adjust.methods" ....

Here's a simple function to find only the functions

lsf <- function(n=2)
{

     tmp <- ls(n, all=TRUE)
     isf <- sapply(tmp, function(x) is.function(get(x, pos=n)))
     tmp[isf]

}

and one could use the 'pattern' arg of ls() to restrict the set.

-- 
Brian D. Ripley,                  ripley@stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Received on Tue Jun 07 17:14:30 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:32:26 EST