r - 查找重复行的索引

标签 r duplicates dataframe

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/

相关文章:

r - R 中数据的子集化和分配

python - 如何将函数应用于 Pandas 数据框的两列和两个 if 函数

r - 像在 GIS 中一样计算 R 中的区域统计数据

r - Shiny侧边栏中的条件面板

r - "Marking"R 中的重复项

c# - 使用 PhysicalAddress 作为键时字典中的重复键

mysql - RMySQL 返回 utf8 文本的乱码

R正则表达式: how to extract elements that contains two character in a certain order?

c# - 从对象数组中删除重复项

python - 尝试合并不同 Excel 文件中的列