我知道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