2016-04-25 6 views
1

Rで::を使用する目的は何ですか?私は、彼らが使用しているガイドの中で、どのパッケージが機能しているかを示すために::を使用していました。これは物事をより速く動かすか、単に必要なパッケージを指示するだけですか?「::」の目的は何ですか?なぜ有用なのですか?

また、::には他の目的や用途がありますか? ggplot2パッケージ導入から

スニペット:任意の時点で

grid::polygonGrob(
     coords$x, coords$y, 
     default.units = "native", 
     gp = grid::gpar(
     col = first_row$colour, 
     fill = scales::alpha(first_row$fill, first_row$alpha), 
     lwd = first_row$size * .pt, 
     lty = first_row$linetype 
    ) 
+2

2つのパッケージに同じ名前の関数がある場合は、 'library(pkg);の代わりに' pkg :: fn'を使います。 fn'はより安全です(混乱と名前の衝突を避けるため)。ここに例があります:http://stackoverflow.com/q/3241539 – Frank

+0

私はその質問が同じではなかったと答えても、実際にこの質問に直接答えることもありませんでした。 –

答えて

5

ロードパッケージの順序に基づいて設立された名前空間の検索パスがあります。パッケージをロードすると、ワークスペースにすでに存在していたのと同じ名前の関数が「マスク」されることがあります。これは、通常、新しいパッケージの読み込み時にアナウンスされますが、ユーザーはこの懸念を見落とす可能性があります。 "::"を使用すると、特定の関数が正しい環境で目的のパッケージからアクセスされることが保証されます。 library()関数は、ライブラリがすでにロードされているかどうかをチェックし、検索パスにあれば何もしないため、2番目のライブラリ呼び出しで関数をリロードしようとすると失敗します。

関連する問題