且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

R 删除重复行

更新时间:2023-02-02 22:42:06

可以试试duplicated

df[!(duplicated(df$A)|duplicated(df$A,fromLast=TRUE)),]
#         A B
#3      Sad 3
#4 Confused 4

df[df$A %in% with(as.data.frame(table(df$A)), Var1[Freq==1]),]
#       A B
#3      Sad 3
#4 Confused 4

df[colSums(sapply(df$A, `==`, df$A))==1,]
#         A B
#3      Sad 3
#4 Confused 4

df[colSums(Vectorize(function(x) x==df$A)(df$A))==1,]

或使用data.table(类似于@beginneR 使用ave)

or using data.table (similar to @beginneR's use of ave)

library(data.table)
setDT(df)[,.SD[.N==1], by=A] 
#          A B
#1:      Sad 3
#2: Confused 4

 setDT(df)[df[,.I[.N==1], by=A]$V1]
 #          A B
 #1:      Sad 3
 #2: Confused 4