可能重复:
您如何确定函数的命名空间?
我不知道该怎么做......你怎么知道R中某个函数的包名?我想要一个给定函数名称的函数,返回拥有它的包的名称。有什么建议吗?
可能有更好的解决方案,但find("functionname")
似乎工作得相当好?但是,它仅适用于已加载的包。
> find("strwidth")
[1] "package:graphics"
> find("qplot")
character(0)
> library(ggplot2)
> find("qplot")
[1] "package:ggplot2"
>
(如果您需要包的原始名称,您可以使用gsub("^package:","",results)
)
(Andrie 链接的上一个问题的答案包括这个答案;他们没有给出一点关于 的信息gsub
,而且他们似乎都分享了找不到未加载的包的问题。)
即使在未加载的包中,这里也有一个快速查找函数的方法:
findAllFun <- function(f) {
h <- help.search(paste0("^",f,"$"),agrep=FALSE)
h$matches[,"Package"]
}
findAllFun("qplot")
## "ggplot2"
findAllFun("lambertW")
## "emdbook" "VGAM"
> findAllFun("xYplot")
## "Hmisc" "lattice"
If you need to find functions in non-installed packages (i.e. searching CRAN), then findFn
from the sos
package will be your friend.