найти все функции (включая частные) в пакете - PullRequest
34 голосов
/ 02 января 2012

Я знаю ls("package:grid") и find.funs("package:grid") в mvbutils, но, очевидно, ни один из них не может найти неэкспортированные функции и методы, которые доступны только для внутреннего использования или с ::: или getAnywhere.

Мне пришлось найти файлы в каталоге /R пакета с исходным кодом и использовать ls() в чистой глобальной среде, но должен быть лучший способ, нет?

Ответы [ 2 ]

34 голосов
/ 02 января 2012

вы можете использовать asNamespace:

> methods(cbind)
[1] cbind.data.frame cbind.grobGrid   cbind.ts*       

   Non-visible functions are asterisked
> r <- unclass(lsf.str(envir = asNamespace("stats"), all = T))
> r[grep("cbind.ts", r)]
[1] ".cbind.ts" "cbind.ts" 

cbind.ts в stats пакете невидим, но можно найти в envir = asNamespace("stats").

25 голосов
/ 25 июня 2013

Здесь, похоже, что-то вроде многолетнего .

Если вам нужен этот однострочник, то это должен быть соперник (кредит @ Джошуа):

ls(getNamespace("grid"), all.names=TRUE)

(ссылка на вопрос, который был задан после выше, но тесно связан).

Поскольку grid является базовым пакетом, и я еще не перешел на R 3 ... Я получаю 756 функций с Версией 2.15.1.против 503 решения unclass.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...