你如何确定函数的命名空间?

Ric*_*ton 36 namespaces r

给定一个函数,您如何确定它来自哪个命名空间?

例如,如果我mean.default在命令提示符下键入,则输出包括它在基本包中的事实.我希望能够做类似的事情getNamespace(mean.default)并让它返回"基础"(或实际的基础环境).

有一个getNamespace函数,但似乎只接受包名而不是函数名.

print.function使用内部代码来检索命名空间.我得到尽可能浏览do_printfunctionsrc/main/print.c,但后来又放弃了.

Dir*_*tel 35

我最近才知道find()这似乎就是这样做的.

R> find("ls")
[1] "package:base"
R> find("na.locf")
[1] "package:zoo"
Run Code Online (Sandbox Code Playgroud)


Jos*_*ich 14

findFunction是另一种选择,并?findFunction说,你应该用它代替findmode="function".结果findFunction是函数的可见版本所在的环境列表.


had*_*ley 12

你想要getNamespaceName+ environment:

getNamespaceName(environment(mean.default))
# [1] "base"
Run Code Online (Sandbox Code Playgroud)

  • 使用字符输入:`getNamespaceName(environment(get("mean.default")))`。 (3认同)