Я задал похожий вопрос о R-Help много месяцев назад (2007), и профессор Брайан Рипли предложил это как решение:
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
Z <- sort(unique(unlist(z)))
, который дает вывод как:
> head(Z)
[1] "^" "-" "-.Date" "-.POSIXt" ":" "::"
Это было для поиска всех функций в пакетах, указанных объектом pkgs
, чтобы вы могли контролировать, какие пакеты загружены / проверены.
Модифицированная версия, которая работает с текущим загруженным набором пакетов, будет:
findfuns2 <- function(pkgs) {
nm <- ls(pkgs, all = TRUE)
nm[unlist(lapply(nm, function(n) exists(n, where = pkgs,
mode = "function",
inherits = FALSE)))]
if(isTRUE(all.equal(length(nm), 0)))
character(0)
else
nm
}
pkgs <- search()
pkgs <- pkgs[grep("package:", pkgs)]
z <- lapply(pkgs, findfuns2)
z <- sort(unique(unlist(z)))
head(z)