在数据框中查找重复项并返回每个重复记录的计数

时间:2018-12-14 04:18:08

标签: r

我有一个类似的数据框

<a href="index.html">Home</a>

我想获得以下格式的输出:

col1 col2 col3
A    B    C
A    B    C
A    B    B
A    B    B
A    B    C
B    C    A

我不想在函数中使用任何特定的列来查找重复项。

这就是不使用dplyr中的add_count的原因。

使用重复项将具有

col1 col2 col3 Count
A    B    C    3 Duplicates
A    B    B    2 Duplicates

不是想要的输出。

2 个答案:

答案 0 :(得分:3)

我们可以使用group_by_all对所有列进行分组,然后通过选择count> 1的行来删除不重复的列。

library(dplyr)

df %>%
  group_by_all() %>%
  count() %>%
  filter(n > 1)

#  col1  col2  col3      n
# <fct> <fct> <fct>   <int>
#1 A     B     B         2
#2 A     B     C         3

答案 1 :(得分:1)

我们可以使用data.table

library(data.table)
setDT(df1)[, .(n =.N), names(df1)][n > 1]
#   col1 col2 col3 n
#1:    A    B    C 3
#2:    A    B    B 2

或与base R

subset(aggregate(n ~ ., transform(df1, n = 1), FUN = sum), n > 1)
#  col1 col2 col3 n
#2    A    B    B 2
#3    A    B    C 3