R的duplicated返回一个 vector ,该 vector 表示 vector 或数据帧的每个元素是否都是下标较小的元素的重复。因此,如果5行数据帧的第3、4和5行相同,则duplicated将为我提供 vector

FALSE, FALSE, FALSE, TRUE, TRUE

但是在这种情况下,我实际上想要
FALSE, FALSE, TRUE, TRUE, TRUE

也就是说,我想知道行是否也被较大的下标的行重复。

最佳答案

duplicated有一个fromLast参数。 ?duplicated的“示例”部分显示了如何使用它。只需两次调用duplicated,一次使用fromLast=FALSE,一次使用fromLast=TRUE,并获取其中任一行为TRUE的行。

一些后期编辑:
您没有提供可复制的示例,因此以下示例由@jbaums提供

vec <- c("a", "b", "c","c","c")
vec[duplicated(vec) | duplicated(vec, fromLast=TRUE)]
## [1] "c" "c" "c"

编辑:还有一个数据框情况的示例:
df <- data.frame(rbind(c("a","a"),c("b","b"),c("c","c"),c("c","c")))
df[duplicated(df) | duplicated(df, fromLast=TRUE), ]
##   X1 X2
## 3  c  c
## 4  c  c

关于r - 查找所有重复的行,包括 “elements with smaller subscripts”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7854433/

10-11 04:21