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

bap*_*ste 34 r

我知道,ls("package:grid")find.funs("package:grid")mvbutils,但显然都没有能找到之后才能使用内部或与非导出的函数和方法,:::getAnywhere.

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

koh*_*ske 34

你可以使用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" 
Run Code Online (Sandbox Code Playgroud)

cbind.tsstats包中看不见但可以找到envir = asNamespace("stats").


dar*_*sco 25

这似乎是一个多年生的事情.

如果这是你所说的单线,那么这应该是一个竞争者(信用@Joshua):

ls(getNamespace("grid"), all.names=TRUE)
Run Code Online (Sandbox Code Playgroud)

(链接是被问了一个问题后,上述,但密切相关的).

作为grid一个基础包,我还没有升级到R 3 ......我在版本2.15.1中获得了756个功能.与unclass解决方案中的503相比.