如果存在两列,如何删除R数据框中的重复行?

如果在一列中重复两个值,则意味着该列中有许多相同的值,但是如果这些值在列中以及行中重复,则将它们称为两列中的重复行。要删除R数据框中的重复行(如果存在两列),我们可以使用重复函数,如以下示例所示。

考虑以下数据帧-

示例

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