如何使用 dplyr 查找重复元素


您可以使用以下方法使用 dplyr 查找数据框中的重复元素:

方法 1:显示所有重复行

 library (dplyr)

#display all duplicate rows
df %>%
  group_by_all() %>%
  filter(n()> 1 ) %>%
  A group()

方法 2:显示所有重复行的重复项数

 library (dplyr)

#display duplicate count for all duplicated rows
df %>%
  add_count(col1, col2, col3) %>%
  filter(n> 1 ) %>%
  distinct()

本教程通过以下数据框解释了如何在实践中使用每种方法:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
                 points=c(10, 10, 8, 14, 15, 15, 17, 17))

#view data frame
df

  team position points
1 AG 10
2 AG 10
3AF 8
4 AF 14
5 BG 15
6 BG 15
7 BF 17
8 BF 17

示例 1:显示所有重复行

以下代码显示如何显示数据框中的所有重复行:

 library (dplyr)

#display all duplicate rows in data frame
df %>%
  group_by_all() %>%
  filter(n()> 1 ) %>%
  A group()

# A tibble: 6 x 3
  team position points
        
1 AG 10
2 AG 10
3 BG 15
4 BG 15
5 BF 17
6 BF 17

结果是一个包含 6 行的数据帧,每行都是重复行。

注意:如果您只想知道哪些行在特定列中具有重复值,则可以使用类似group_by(team)之类的方法来仅查找在team列中具有重复值的行。

示例 2:显示所有重复行的重复项数

以下代码显示如何显示数据框中所有重复行的重复计数:

 library (dplyr)

#display duplicate count for each row
df %>%
  add_count(team, position, points) %>%
  filter(n> 1 ) %>%
  distinct()

  team position points n
1 GA 10 2
2 BG 15 2
3 BF 17 2

n列显示每行的重复项总数。

例如:

  • 值为 A、G 和 10 的行在数据块中出现了2次。
  • 值为 B、G 和 15 的行在数据块中出现了2次。
  • 值为 B、F 和 17 的行在数据块中出现了2次。

注意:如果您只想知道哪些行在特定列中具有重复值,请在add_count()函数中仅包含那些特定列。

其他资源

以下教程解释了如何在 R 中执行其他常见任务:

如何使用dplyr过滤唯一值
如何使用 dplyr 按多个条件进行过滤
如何计算R中列中出现的次数

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注