[R] listing all functions in R
Earl F. Glynn
efg at stowers-institute.org
Tue Jan 9 23:51:05 CET 2007
"Seth Falcon" <sfalcon at fhcrc.org> wrote in message
news:m23b6k5idc.fsf at fhcrc.org...
> Are you sure you need to? I just tried your code above with:
>
> pkgs <- c("Biobase", "GOstats", "flrblr", "bazbaz")
>
> And while I see warning messages about the flrblr and bazbaz packages,
> the function completed and I get the expected results in z.
>
> Oh, perhaps you have some broken installs? Broken in the sense that
> you have a package installed but not its dependencies?
I installed all known CRAN packages after installing R 2.4.1 last week on a
PC. Perhaps some new consistency checks checks could be be made to catch
such dependency problems?
>
> How about this:
>
> safeRequire <- function(x) {
> tryCatch(require(x, character.only=TRUE),
> error=function(e) FALSE)
> }
Thanks. That's a much better function.
But if your process a lot of packages, even with just safeRequire (or
findfuns), the search() path grows quite long, and things break, so it's not
really possible to get a list of all functions in R if you have all packages
installed.
Consider:
pkgs <- dir(.Library)
length(pkgs) #957
length( search() ) # 9
# First 100 Packages
set1 <- lapply(pkgs[1:100], safeRequire)
pkgs[which(!unlist(set1))]
#[1] "bcp" "cairoDevice" "caMassClass"
length( search() ) # 135
safeRequire("bcp")
####################################
Loading required package: bcp
Loading required package: DNAcopy
Warning in library(pkg, character.only = TRUE, logical = TRUE, lib.loc =
lib.loc) :
there is no package called 'DNAcopy'
[1] FALSE
####################################
In the 2nd 100 many packages seem to be affected by the "Maximal number of
DLLs reached..."
I didn't bother trying to process packages 201 through 957.
efg
Earl F. Glynn
Scientific Programmer
Bioinformatics
Stowers Institute for Medical Research
More information about the R-help
mailing list