我知道mvbutils
ls("package:grid")
和find.funs("package:grid")
但显然他们都不可以发现,只访问内部或与:::
或getAnywhere
未导出的函数和方法。找到所有功能(包括私人)包
我不得不在源代码包的/R
目录中找到文件,并在干净的全球环境中使用ls()
,但必须有更好的方法,不是吗?
我知道mvbutils
ls("package:grid")
和find.funs("package:grid")
但显然他们都不可以发现,只访问内部或与:::
或getAnywhere
未导出的函数和方法。找到所有功能(包括私人)包
我不得不在源代码包的/R
目录中找到文件,并在干净的全球环境中使用ls()
,但必须有更好的方法,不是吗?
您可以使用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")
找到。
整洁,谢谢。两个答案都很好,但由于只有一个答案可以被接受,所以我会选择单线。 – baptiste 2012-01-02 00:27:49
这似乎是perennial这里的东西。
如果是这样的俏皮话你以后那么这应该是一个竞争者(信用@Joshua):
ls(getNamespace("grid"), all.names=TRUE)
(链接是被要求后上述的问题,而是紧密有关)。
由于grid
是一个基础包,我还没有上升到,R 3 ...我得到756层的功能与2.15.1版本。与unclass
解决方案中的503比较。
近期R中的'707'与'778';大多数setdiff似乎是内部的C例程('grid ::: L_textBounds')或常量('grid ::: Mb')。 – baptiste 2013-06-25 11:12:08
''get''和''getFromNamespace''似乎调用一个''.internal'',他们需要知道一个特定的名字,这并没有什么帮助。你的阅读? – 2012-01-01 23:14:43
什么是''package:grid''中的一个特殊符号,在ls(package:grid)中没有列出''但是期望? – 2012-01-01 23:18:32
481其中,根据下面的解决方案'setdiff(unclass(lsf.str(envir = asNamespace(“grid”),all = T)),ls('package:grid'))' – baptiste 2012-01-02 00:30:32