查找包中的所有函数(包括私有)

时间:2012-01-01 22:59:15

标签: r

我知道ls("package:grid")中的find.funs("package:grid")mvbutils,但显然他们都找不到只能在内部访问或使用:::或{{{{}}}的非导出函数和方法1}}。

我必须在源包的getAnywhere目录中获取文件并在干净的全局环境中使用/R,但必须有更好的方法,不是吗?

2 个答案:

答案 0 :(得分:33)

您可以使用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")中找到。

答案 1 :(得分:25)

这里似乎是perennial

如果这是一个单行,你应该是竞争者(@Joshua):

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

(链接是在之后之后被问到的问题,但密切相关)。

由于grid是一个基础包,我还没有升级到 R 3 ...... 我在版本2.15.1中获得了756个函数。与unclass解决方案中的503相比。