1. ホーム
  2. r

[解決済み] "添え字が小さい要素 "を含む、重複する行をすべて見つける

2022-06-01 04:59:11

質問

Rの duplicated は、ベクトルまたはデータフレームの各要素が、より小さな添え字を持つ要素と重複しているかどうかを示すベクトルを返します。つまり、5行のデータフレームの3行目、4行目、5行目が同じであれば duplicated はベクトルを返します。

FALSE, FALSE, FALSE, TRUE, TRUE

しかし、この場合、実際に取得したいのは

FALSE, FALSE, TRUE, TRUE, TRUE

を持つ行が重複しているかどうかを知りたいということです。 より大きい の添え字もある行と重複しているかどうかを知りたいのです。

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

duplicated があります。 fromLast の議論になります。 の "Example "セクションをご覧ください。 ?duplicated を呼び出すだけで、その使い方がわかります。 duplicated と2回、1回は fromLast=FALSE と一度だけ fromLast=TRUE のどちらかである行を選びます。 TRUE .


遅れての編集です。 再現性のある例がなかったので、@jbaums さんのご好意でイラストを掲載します。

vec <- c("a", "b", "c","c","c") 
vec[duplicated(vec) | duplicated(vec, fromLast=TRUE)]
## [1] "c" "c" "c"


編集部:データフレームの場合の例も。

df <- data.frame(rbind(c("a","a"),c("b","b"),c("c","c"),c("c","c")))
df[duplicated(df) | duplicated(df, fromLast=TRUE), ]
##   X1 X2
## 3  c  c
## 4  c  c