了解R的anyDuplicated

时间:2017-03-14 23:41:54

标签: r

理解R的任何重复的快速问题,当传递给数据帧时(假设xyz列具有1k观测值)将检查是否有任何行具有与另一行完全相同的xyz值相同的数据帧?感谢

1 个答案:

答案 0 :(得分:1)

我会使用duplicated并将其从前到后合并。

mydf <- data.frame(x = c(1:3,1,1), y = c(3:5,3,3))
mydf
#   x y
# 1 1 3
# 2 2 4
# 3 3 5
# 4 1 3
# 5 1 3

有三个重复的行1,4和5.但'重复'只会标记重复的内容而不是原始值。

duplicated(mydf)
#[1] FALSE FALSE FALSE  TRUE  TRUE
duplicated(mydf, fromLast = TRUE)
#[1]  TRUE FALSE FALSE  TRUE FALSE

使用从最后到最后的外观来包含原始值。顺便说一句,我会要求R核心团队添加一个统一的功能来完成这两项工作。

myduplicates <- duplicated(mydf) | duplicated(mydf, fromLast = TRUE)

将表达式保存为变量允许我们稍后计算和子集。

sum(myduplicates)
#[1] 3
mydf[myduplicates,]
#   x y
# 1 1 3
# 4 1 3
# 5 1 3
mydf[!myduplicates,]
#   x y
# 2 2 4
# 3 3 5