如何删除 r 中的重复行以便不留下任何重复行


您可以在 R 中使用以下方法从数据框中删除重复行,以便结果数据框中不会保留任何重复行:

方法一:使用Base R

 new_df <- df[ ! (duplicated(df) | duplicated(df, fromLast= TRUE )), ]

方法2:使用dplyr

 library (dplyr)

new_df <- df %>%
          group_by(across(everything())) %>%
          filter(n() == 1 )

以下示例展示了如何在实践中使用以下数据框使用每种方法:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 points=c(20, 20, 28, 14, 13, 18, 27, 13))

#view data frame
df

  team points
1 to 20
2 to 20
3 to 28
4 to 14
5 B 13
6 B 18
7 B 27
8 B 13

示例 1:使用 Base R

以下代码显示如何使用 R 基本函数从数据框中删除重复行,以便不保留任何行:

 #create new data frame that removes duplicates so none are left
new_df <- df[ ! (duplicated(df) | duplicated(df, fromLast= TRUE )), ]

#view new data frame
new_df

  team points
3 to 28
4 to 14
6 B 18
7 B 27

请注意,每个重复行均已从数据框中删除,并且不会保留任何重复行。

示例 2:使用 dplyr

以下代码演示了如何使用 R 中dplyr包中的函数从数据框中删除重复行,以便不保留任何行:

 library (dplyr)

#create new data frame that removes duplicates so none are left
new_df <- df %>%
          group_by(across(everything())) %>%
          filter(n() == 1 )

#view new data frame
new_df

# A tibble: 4 x 2
# Groups: team, points [4]
  team points
    
1 to 28
2 to 14
3 B 18
4 B 27

请注意,每个重复行均已从数据框中删除,并且不会保留任何重复行。

另请注意,这会产生与先前方法相同的结果。

注意:对于非常大的数据帧,dplyr 方法将比基本 R 方法更快。

其他资源

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

如何根据条件删除R中的行
如何删除R中特定列中带有NA的行

添加评论

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