Subscribed unsubscribe Subscribe Subscribe

カブっているのはどいつだ!?

次につなげるというより,何が悪いんだろうと評価する場合の話.
dplyr使って,データから重複を除きたいときはunique()とかdistinct()とかで取り除ける.
逆の話ってあんまりないよね.重複しているデータセットを知りたい.
普通だったらduplicateとか使うんだろうけど,使い方がよくわからないのでこうやった.

> require(dplyr)
> # 適当なデータセットを作る
> cbind(flag=paste(rep("A",4),1:4, sep=""), data.frame(matrix((runif(4*5)),nrow=4))) %>%
+   # tbl_df形式に変換(趣味の問題)
+   tbl_df() %>% 
+   # あえてダブらせるために元データから3個サンプリングしてくっつける
+   bind_rows(.,sample_n(.,size = 3)) %>% 
+   arrange(flag) %>% 
+   # グループ化して
+   group_by(flag) %>%
+   # 数を数えてなにがダブってたか表示する
+   filter(n()>1)
Source: local data frame [6 x 6]
Groups: flag [3]

    flag         X1        X2        X3        X4        X5
  <fctr>      <dbl>     <dbl>     <dbl>     <dbl>     <dbl>
1     A1 0.29190067 0.9188347 0.4091478 0.4894116 0.9184717
2     A1 0.29190067 0.9188347 0.4091478 0.4894116 0.9184717
3     A3 0.67632804 0.9658845 0.7904995 0.2662530 0.6808312
4     A3 0.67632804 0.9658845 0.7904995 0.2662530 0.6808312
5     A4 0.08709546 0.1974051 0.1944737 0.3843282 0.9018635
6     A4 0.08709546 0.1974051 0.1944737 0.3843282 0.9018635