如果兩列中存在重複行,如何在 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

上次更新於:08-Feb-2021

1 千+ 次瀏覽

開始你的 職業生涯

完成課程後獲得認證

開始
廣告