Re: [R] names of functions in a library

From: Henrik Bengtsson <hb_at_maths.lth.se>
Date: Tue 07 Jun 2005 - 20:02:10 EST

For a generalization of this, see ll() in the R.oo package;

 > library(R.oo)
 > ll(mode="function", envir="base")

                 member  data.class dimension object.size
  1                   -    function      NULL          28
  2              -.Date    function      NULL        5996
  3            -.POSIXt    function      NULL        6864
  <snip></snip>
  1008         zapsmall    function      NULL        3068
  1009 zip.file.extract    function      NULL        5232

 > help(ll)

Usage:

     ll(pattern=".*", ..., private=FALSE, properties=c("data.class", "dimension", "object.size"), sortBy=NULL, envir=parent.frame())

Arguments:

  pattern: Regular expression pattern specifying which members to

           return. If '".*"', all names are matched.

      ...: A named 'vector' of format 'functionName=value', where
           'functionName()' will be called on each member found. If the
           result matches the 'value', the member is returned, otherwise
           not.

properties: Names of properties to be returned. There must exist a
           'function' with the same name, because it will be called.
           This way one can extract any type of property by defining new
           methods.

   sortBy: Name or index of column (property) to be sorted by. If
           'NULL', the objects are listed in the order they are found.

  private: If 'TRUE', also private members, i.e. members with a name
           starting with a '.' (period), will be listed, otherwise not.

    envir: An 'environment', a search path index or a name of a package
           to be scanned.

Thus, stratification on 'mode' in the example abov is taken care of by the '...' argument.

Cheers

/Henrik

Prof Brian Ripley wrote:
> 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.
>

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 20:18:34 2005

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