删除R中具有重复值的行的所有副本

Blu*_*Sky 2 r

我有一个数据集看起来像这样:

name  position type
A       12      S
B       13      T
C       12      S
D       12      T
E       11      S
F       10      S
Run Code Online (Sandbox Code Playgroud)

我想删除具有重复位置和类型的行。

我试图使用该duplicated函数查找重复的行,但是我不知道如何删除具有重复值的所有行。

dup = db[duplicated(db[2:3]),]
Run Code Online (Sandbox Code Playgroud)

我想删除具有相同位置和类型但名称不同的行。我想要的输出是:

name  position type
B       13      T
D       12      T
E       11      S
F       10      S
Run Code Online (Sandbox Code Playgroud)

akr*_*run 5

duplicated只从开始重复的值返回TRUE。要返回所有重复的元素,我们可能需要duplicated反向应用(即从最后一个值到第一个)并使用OR条件(即|对数据集求反和子集化)。

db[!(duplicated(db[2:3])|duplicated(db[2:3], fromLast=TRUE)),]
#   name position type
# 2    B       13    T
# 4    D       12    T
# 5    E       11    S
# 6    F       10    S
Run Code Online (Sandbox Code Playgroud)