6

重複の可能性:
関数の名前空間をどのように決定しますか?

これを行う方法がわかりません...Rで特定の関数のパッケージ名をどのように知っていますか? 関数の名前を指定して、それを所有するパッケージの名前を返す関数が必要です。なにか提案を?

4

1 に答える 1

7

より良い解決策があるかもしれませんが、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" 

インストールされていないパッケージの関数を見つける必要がある場合(つまり、CRAN を検索する場合)、パッケージfindFnからsosが友達になります。

于 2012-05-11T14:54:56.643 に答える