2017-02-12 11 views
1

data.tabledplyrの代わりにdtplyrを使用しますか? zooxtsなどの「デフォルト」パッケージから多くの機能をマスクしているので、dplyrまたはdata.table(スタンドアロン)を使用することを恐れるべきですか?ここで良い練習は何ですか? dplyrdata.tableの両方がCRANにあると思いますが、著者はいくつかの良い方法を実践しましたか、それとも後に続くガイドラインがないのでしょうか?私はオブジェクトマスキングに関する多くのサイマルの質問を見る、私はdplyrオブジェクトの命名があまりにも乱雑ではないか、それが最良の選択だったので、それは簡単なのだろうか?data.table、dplyrなどオブジェクトマスキング

> library(dplyr) 
----------------------------------------------------------------------- 
data.table + dplyr code now lives in dtplyr. 
Please library(dtplyr)! 
----------------------------------------------------------------------- 

Attaching package: ‘dplyr’ 

The following objects are masked from ‘package:data.table’: 

    between, first, last 

The following objects are masked from ‘package:xts’: 

    first, last 

The following objects are masked from ‘package:stats’: 

    filter, lag 

The following objects are masked from ‘package:base’: 

    intersect, setdiff, setequal, union 
+4

あなたは ''コンフリクト(詳細= TRUE)を実行することができます。それ以外に、私はquesitonが何であるか分かりません。これは非常に意見に基づいています。あなたが私に尋ねるなら、私はあなたに 'dplyr 'を全く使わないように言うでしょう。あなたが[r]のユーザーの99.9%をSOに頼むと、ハドリーがそれを書いている間、彼らは紛争を気にしないと言います。また、 'data.table'が基底Rからマスキングされているものが見つかりません。' zoo'と 'xts'は* default *関数ではなく、' data.table'はおそらく 'data.tble'オブジェクト*のみ(dplyrs 'setdiff'や' filter'などとは異なります)。 –

+2

たとえば、 'data.table :: last'をコンソールに入力すると、' xts :: last'との衝突を明示的に処理することがわかります。私の推測では、これは一般的なパッケージと競合するすべてのdata.table関数に適用されるということです。 – Frank

答えて

4

競合がないロードdplyrを試してみて、代わりにdplyrを置く::使用したい任意のdplyr機能の前で、あなたに懸念している場合。 dplyrの%>%はmagrittrパッケージから来ています。それでも矛盾がないので、まだ読み込めます。例えば、

library(magrittr) 

iris %>% dplyr::group_by(Species) %>% dplyr::summarize_all(mean) 

か、このように使用したいdplyrから関数を定義する:あなたは競合を知りたい場合は

library(magrittr) 

group_by <- dplyr::group_by 
summarize_all <- dplyr::summarize_all 

iris %>% group_by(Species) %>% summarize_all(mean)