更新时间: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