R中给定函数的包的名称

nhe*_*121 6 r

可能重复:
您如何确定函数的命名空间?

我不知道怎么做...你怎么知道R中某个函数的包名?我想有一个给定函数名称的函数,返回拥有它的包的名称.有什么建议吗?

Ben*_*ker 7

可能有更好的解决方案,但find("functionname")似乎运作得相当好?但是,它仅适用于已加载的包.

> find("strwidth")
[1] "package:graphics"
> find("qplot")
character(0)
> library(ggplot2)
> find("qplot")
[1] "package:ggplot2"
> 
Run Code Online (Sandbox Code Playgroud)

(如果您需要可以使用的包的原始名称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" 
Run Code Online (Sandbox Code Playgroud)

如果您需要在未安装的软件包中找到功能(即搜索CRAN),那么findFnsos软件包中将成为您的朋友.