2016-08-20 3 views
0

質問のタイトルはそれほど大丈夫です。関数が定義されているファイルの検索方法は?

hereの解決策は必ずしも機能しません。たとえば、

> class(facet_grid) 
[1] "function" 
> attr(facet_grid, "srcref") 
NULL 
> attributes(facet_grid) 
NULL 
+0

私のdownvoteではありませんが、一般的には、関数が定義されている特定のファイルを直接決定することはできません。なぜなら関数はファイルに定義する必要はないからです(コンソールで直接定義することもできます)。 'source( 'some/file.R')'を呼び出すと、 'srcref'オブジェクト(ファイルパス)を生成するために必要な情報が' source'に与えられているので、これが他の答えで可能な唯一の理由です。 。 – nrussell

+0

パッケージがその機能を提供するものを絞り込むことができても、 'some_function.R'という名前のファイルに' some_function'が定義されているという保証はないので、 '' some_function < - そのパッケージのディレクトリなどの "function"。 – nrussell

+0

この情報が必要な理由を質問に示してください。 – Roland

答えて

2

environment() - 関数は、関数が読み込まれた後に関数が "見つかった"パッケージを返します。

> environment(facet_grid) 
<environment: namespace:ggplot2> 

CRAN(またはおそらくgithubの)からggplot2_version_whatever.tag.gzをダウンロードし、それを展開した後、あなたはで始まるこのdefinitonを持っているという名前のファイルファセットgrid.rを(お使いのシステムのテキスト検索機能を使用して)見つけることができます125行目:

facet_grid <- function(facets, margins = FALSE, scales = "fixed", space = "fixed", shrink = TRUE, labeller = "label_value", as.table = TRUE, switch = NULL, drop = TRUE) { 

コメントがあります。あなたがそれらを保持するために特別な努力をしない限り、コメントはコンパイル中に削除されます。

+1

'environment'によって返された値から、関数が定義されているファイルへのパスにどのように戻ってくるのかは分かりません。 – kjo

+0

'.libPaths()'を使ってあなたのパッケージの場所を探します。 –

+1

私は自分のパッケージがどこにインストールされているのか知っています。 'facet_grid'がどこに定義されているのかまだ分かりません。 – kjo

関連する問題