R 中的 duplicated 函数执行重复行搜索。如果我们想删除重复项,我们只需要写 df[!duplicated(df),]
并且重复项将从数据框中删除。
但是如何找到重复数据的索引呢?如果duplicated
在某些行上返回 TRUE,这意味着这是数据框中第二次出现该行,并且可以轻松获取其索引。如何获取该行第一次出现的索引?或者,换句话说,是与重复行相同的索引?
我可以在 data.frame 上进行循环,但我认为这个问题有一个更优雅的答案。
最佳答案
这是一个例子:
df <- data.frame(a = c(1,2,3,4,1,5,6,4,2,1))
duplicated(df) | duplicated(df, fromLast = TRUE)
#[1] TRUE TRUE FALSE TRUE TRUE FALSE FALSE TRUE TRUE TRUE
它是如何工作的?
函数duplicate(df)
确定原始数据中的重复元素。 fromLast = TRUE
表示“应从反面考虑重复”。两个结果逻辑向量使用 |
组合,因为其中至少一个 TRUE
表示重复值。
关于r - 查找重复行的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12495345/