R语言 Dplyr删除基于多列的重复行

R语言 Dplyr删除基于多列的重复行

在这篇文章中,我们将学习如何使用R编程语言中的Dplyr来删除基于多列的重复行。

使用中的数据框架

            lang value usage
1        Java    21    21
2           C    21    21
3      Python     3     0
4          GO     5    99
5        RUST   180    44
6  Javascript     9    48
7         Cpp    12    53
8        Java    21    21
9       Julia     6     6
10 Typescript     0     8
11     Python     3     0
12         GO     6     6
R

基于单列删除重复的记录

distinct() 函数可以用来过滤掉重复的行。我们只需要在 distinct() 函数中传递我们的R对象和列名作为一个参数。

注意 :我们在函数中使用了这个参数 “.keep_all= TRUE “,因为默认情况下它是 “FALSE”, 它将只打印指定列的不同值,但我们想要所有的列,所以我们必须使它成为 “TRUE”, 这样它将与当前列一起打印所有其他的列。

语法: distinct(df, column_name, .keep_all= TRUE)

参数

df: 数据框架对象

column_name: 列名,根据这个列名,重复的行将被删除。

例子: R程序基于单列删除重复的行

library(dplyr)
  
df <- data.frame (lang =c ('Java','C','Python','GO','RUST','Javascript',
                      'Cpp','Java','Julia','Typescript','Python','GO'),
  
                      value = c (21,21,3,5,180,9,12,21,6,0,3,6),
  
                      usage =c(21,21,0,99,44,48,53,21,6,8,0,6))
  
distinct(df, lang, .keep_all= TRUE)
R

输出

lang value usage
1       Java    21    21
2          C    21    21
3     Python     3     0
4         GO     5    99
5       RUST   180    44
6 Javascript     9    48
7        Cpp    12    53
8      Julia     6     6
9 Typescript     0     8
R

基于多列删除重复的行

我们可以在 ‘value ‘ & ‘usage ‘ 列的基础上删除重复的值,绕过这些列名作为distinct函数的一个参数。

语法 : distinct(df, col1,col2, .keep_all= TRUE)

参数 :

df : 数据框架对象

col1,col2 : 列名,根据这个列名,重复的行将被删除。

例子: R程序基于多列删除重复的行

library(dplyr)
  
df <- data.frame (lang =c ('Java','C','Python','GO','RUST','Javascript',
                      'Cpp','Java','Julia','Typescript','Python','GO'),
  
                      value = c (21,21,3,5,180,9,12,21,6,0,3,6),
  
                      usage =c(21,21,0,99,44,48,53,21,6,8,0,6))
  
distinct(df, value, usage, .keep_all= TRUE)
R

输出

        lang value usage
1       Java    21    21
2     Python     3     0
3         GO     5    99
4       RUST   180    44
5 Javascript     9    48
6        Cpp    12    53
7      Julia     6     6
8 Typescript     0     8
R

从数据框中删除所有重复的行

在这种情况下,我们只需将整个数据框架作为参数传给 distinct ()函数,然后它将检查所有变量/列的所有重复行并将其删除。

语法 :distinct(df)

参数 :

df :数据框架对象

例子: R程序从数据库中删除所有重复的行

library(dplyr)
  
df <- data.frame (lang =c ('Java','C','Python','GO','RUST','Javascript',
                      'Cpp','Java','Julia','Typescript','Python','GO'),
  
                      value = c (21,21,3,5,180,9,12,21,6,0,3,6),
  
                      usage =c(21,21,0,99,44,48,53,21,6,8,0,6))
  
distinct(df)
R

输出

lang value usage
1        Java    21    21
2           C    21    21
3      Python     3     0
4          GO     5    99
5        RUST   180    44
6  Javascript     9    48
7         Cpp    12    53
8       Julia     6     6
9  Typescript     0     8
10         GO     6     6
R

使用 duplicated() 函数

在这个方法中,我们使用了 doubleicated() 函数来删除所有重复的行,这里doubleicated函数被用来 ,检查重复的行,然后列名/变量被传递到doubleicated函数中。

注意 :我们使用了 NOT ( ! ) 操作符,因为我们想过滤掉或删除重复的记录,因为Doubleicated函数提供了重复的记录,我们用 ‘! ‘操作符将其否定。

语法

df %>%

filter(!duplicated(cbind(col1, col2,..))

参数

col1,col2: 传递你想移除重复值的列的名称。

cbind() :它用于将列名绑定在一起,这样就可以使用多个列名进行过滤。

duplicated(): 返回重复的行。

例子: 使用 duplicate() 删除重复的 R 程序

library(dplyr)
  
df <- data.frame (lang =c ('Java','C','Python','GO','RUST','Javascript',
                      'Cpp','Java','Julia','Typescript','Python','GO'),
  
                      value = c (21,21,3,5,180,9,12,21,6,0,3,6),
  
                      usage =c(21,21,0,99,44,48,53,21,6,8,0,6))
  
df %>%
  filter(!duplicated(cbind(value, usage)))
R

输出

        lang value usage
1       Java    21    21
2     Python     3     0
3         GO     5    99
4       RUST   180    44
5 Javascript     9    48
6        Cpp    12    53
7      Julia     6     6
8 Typescript     0     8
R

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册