1. ホーム
  2. r

[解決済み] dplyrで重複する要素を検索する

2023-01-30 18:25:16

質問

以下のコードで試してみました。 ここで で重複している要素をすべて見つけるために dplyr のようになります。

library(dplyr)

mtcars %>%
mutate(cyl.dup = cyl[duplicated(cyl) | duplicated(cyl, from.last = TRUE)])

を提示したコードをどのように変換すればよいのでしょうか? ここで で重複する全ての要素を見つけるには dplyr ? 上記の私のコードはエラーを投げるだけですか?あるいは、もっと良い方法は、複雑な x[duplicated(x) | duplicated(x, from.last = TRUE)]) アプローチよりも簡潔にこれを達成する別の関数がありますか?

どのように解決するのですか?

やはり filter を使用することができます。

mtcars %>% 
  group_by(carb) %>% 
  filter(n()>1)

小さな例 (私が summarize() を追加し、結果のデータセットに重複した 'carb' を含む行がないことを証明しています。私が「cyl」の代わりに「carb」を使用したのは、「carb」が一意の値を持つのに対し、「cyl」は持たないからです)。

mtcars %>% group_by(carb) %>% summarize(n=n())
#Source: local data frame [6 x 2]
#
#  carb  n
#1    1  7
#2    2 10
#3    3  3
#4    4 10
#5    6  1
#6    8  1

mtcars %>% group_by(carb) %>% filter(n()>1) %>% summarize(n=n())
#Source: local data frame [4 x 2]
#
#  carb  n
#1    1  7
#2    2 10
#3    3  3
#4    4 10