Re: [R] listing all functions in R

From: Duncan Murdoch <>
Date: Sat 06 Jan 2007 - 15:43:02 GMT

On 1/6/2007 9:25 AM, Gavin Simpson wrote:
> On Sat, 2007-01-06 at 13:48 +0000, Prof Brian Ripley wrote:

>> Could you tell us what you mean by

> Thank you for your reply, Prof. Ripley.
>> - 'function'  (if() and + are functions in R, so do you want those?)

> I was thinking about functions that are used like this: foo()
> So I don't need things like "names<-". I don't need functions like +. -,
> $, as I can highlight the separately if desired, though I'm not doing
> this at the moment.
> Functions like for() while(), if() function() are handled separately.
>> - 'a base R installation'?   What is 'base R' (standard + recommended 
>> packages?)  And on what platform: the list is platform-specific?

> Yes, I mean standard + recommended packages. As for platform, most of my
> intended audience will be MS Windows users, though I am using Linux
> (Fedora) to generate this list (i.e. my R installation is on Linux).

Be careful: the installed list of functions differs slightly from platform to platform. For example, on Windows there's a function choose.dir in the utils package, but I don't think this exists on Unix.

The list also varies from version to version, so if you could manage to run some code in the user's installed R to generate the list on the fly, you'd get the most accurate list.

Duncan Murdoch


>> Here is a reasonable shot:
>> findfuns <- function(x) {
>>      if(require(x, character.only=TRUE)) {
>>         env <- paste("package", x, sep=":")
>>         nm <- ls(env, all=TRUE)
>>         nm[unlist(lapply(nm, function(n) exists(n, where=env,
>>                                                mode="function",
>>                                                inherits=FALSE)))]
>>      } else character(0)
>> }
>> pkgs <- dir(.Library)
>> z <-  lapply(pkgs, findfuns)
>> names(z) <- pkgs

> Excellent, that works just fine for me. I can edit out certain packages
> that I don't expect to use, before formatting as desired. I can also use
> this function on a library of packages that I use regularly and will be
> using in the web pages.
>> I don't understand your desired format, but
>> write(sQuote(sort(unique(unlist(z)))), "")

> I wanted a single string "...", with entries enclosed in "''" and
> separated by "," (this is to go in a PHP array). I can generate such a
> string from your z, above, as follows:
> paste(sQuote(sort(unique(unlist(z)), decreasing = TRUE)),
> collapse = ", ")
>> gives a single-column quoted list.  It does include internal functions, 
>> operators, S3 methods ... so you probably want to edit it.

> Once again, thank you.
> All the best
> Gav
>> On Sat, 6 Jan 2007, Gavin Simpson wrote:
>>> Dear List,
>>> I'm building an R syntax highlighting file for GeSHi [*] for a website I
>>> am currently putting together. The syntax file needs a list of keywords
>>> to highlight. How can I generate a list of all the functions in a base R
>>> installation?
>>> Ideally the list would be formatted like this:
>>> "'fun1', 'fun2', 'fun3'"
>>> when printed to the screen so I can copy and paste it into the syntax
>>> file.
>>> I'm sure this has been asked before, but I stupidly didn't save that
>>> email and I couldn't come up with a suitable query parameter for
>>> Jonathan Baron's search site to return results before timing out.
>>> Thanks in advance,
>>> Gav

______________________________________________ mailing list PLEASE do read the posting guide and provide commented, minimal, self-contained, reproducible code. Received on Sun Jan 07 03:22:18 2007

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Sat 06 Jan 2007 - 16:30:25 GMT.

Mailing list information is available at Please read the posting guide before posting to the list.