如果两列中存在重复行,如何在 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 千+ 次浏览

开始你的 职业生涯

完成课程后获得认证

开始
广告