如果两列中存在重复行,如何在 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
广告