如果兩列中存在重複行,如何在 R 資料幀中刪除重複行?
如果一列中重複了兩個值,則表示該列中存在很多相同的值,但如果這些值在列和行中都重複,則它們被稱為兩列中的重複行。若要刪除 R 資料幀中如果存在於兩列中的重複行,我們可使用 duplicated 函式,如下例所示。
考慮以下資料幀 −
示例
x1<-sample(LETTERS[1:4],20,replace=TRUE) x2<-sample(LETTERS[1:4],20,replace=TRUE) df1<-data.frame(x1,x2) df1
輸出
x1 x2 1 B B 2 C D 3 A A 4 C D 5 B C 6 D D 7 D A 8 A B 9 B A 10 D B 11 A B 12 B B 13 D A 14 A C 15 C A 16 A B 17 A B 18 A C 19 D A 20 B B
刪除 df1 的兩列中存在的重複行 −
示例
df1[!duplicated(df1[c("x1","x2")]),]
輸出
x1 x2 1 B B 2 C D 3 A A 5 B C 6 D D 7 D A 8 A B 9 B A 10 D B 14 A C 15 C A
示例
y1<-rpois(20,1) y2<-rpois(20,1) y3<-rpois(20,1) df2<-data.frame(y1,y2,y3) df2
輸出
y1 y2 y3 1 0 2 1 2 1 1 0 3 0 1 0 4 0 2 2 5 0 2 0 6 0 0 1 7 0 0 0 8 1 0 1 9 3 0 0 10 0 2 0 11 0 2 1 12 1 2 1 13 0 0 1 14 2 2 0 15 3 3 3 16 0 1 1 17 0 0 1 18 1 0 0 19 0 1 1 20 0 1 3
刪除 df2 的兩列中存在的重複行 −
示例
df2[!duplicated(df2[c("y1","y2")]),]
輸出
y1 y2 y3 1 0 2 1 2 1 1 0 3 0 1 0 6 0 0 1 8 1 0 1 9 3 0 0 12 1 2 1 14 2 2 0 15 3 3 3
廣告