Elimine filas duplicadas en función de varias columnas con Dplyr en R

En este artículo, aprenderemos cómo eliminar filas duplicadas basadas en múltiples columnas usando dplyr en el lenguaje de programación R.

Trama de datos en uso:

            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

Eliminación de filas duplicadas en función de la columna única

La función distintiva() se puede usar para filtrar las filas duplicadas. Solo tenemos que pasar nuestro objeto R y el nombre de la columna como argumento en la función distintiva()

Nota : hemos utilizado este parámetro » .keep_all= TRUE » en la función porque, de forma predeterminada , es FALSO e imprimirá solo los valores distintos de la columna especificada, pero queremos todas las columnas, así que tenemos que hacerlo VERDADERO, por ejemplo que imprimirá todas las demás columnas junto con la columna actual. 

Sintaxis: distintiva(df, column_name, .keep_all= TRUE)

Parámetros:

df: objeto de marco de datos

column_name: nombre de la columna en función de qué filas duplicadas se eliminarán

Ejemplo: programa R para eliminar filas duplicadas basadas en una sola columna

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)

Producción:

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

 Eliminación de filas duplicadas en función de varias columnas

Podemos eliminar los valores duplicados sobre la base de las columnas ‘ valor ‘ y ‘ uso ‘, pasando por alto esos nombres de columna como un argumento en la función distinta. 

Sintaxis : distinto (df, col1, col2, .keep_all= TRUE)

Parámetros :

df : objeto de marco de datos

col1,col2 : nombre de columna basado en qué filas duplicadas se eliminarán

Ejemplo: programa R para eliminar filas duplicadas en función de varias columnas 

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)

Producción:

        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

Eliminar todas las filas duplicadas del marco de datos

En este caso, solo tenemos que pasar el marco de datos completo como un argumento en la función distintiva(), luego verifica todas las filas duplicadas para todas las variables/columnas y las elimina. 

Sintaxis : distinto (df)

Parámetros :

df : objeto de marco de datos

Ejemplo: programa R para eliminar todas las filas duplicadas de la base de datos

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)

Producción:

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

Usando la función duplicada()

En este enfoque, hemos usado duplicated() para eliminar todas las filas duplicadas, aquí se usa la función duplicada para verificar las filas duplicadas, luego los nombres/variables de las columnas se pasan en la función duplicada. 

Nota : hemos usado el operador NOT ( ! ) porque queremos filtrar o eliminar las filas duplicadas, ya que la función duplicada proporciona las filas duplicadas, las negamos usando ‘ ! ‘ operador.

Sintaxis:

gl %>%

  filtro(! duplicado (cbind(col1, col2,..)))

Parámetros:

col1, col2: Pase los nombres de las columnas en función de las cuales desea eliminar los valores duplicados

cbind() : se usa para unir nombres de columnas de manera que se puedan usar varios nombres de columnas para filtrar

duplicado(): devuelve las filas duplicadas

Ejemplo: programa R para eliminar duplicados usando 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)))

Producción:

        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

Publicación traducida automáticamente

Artículo escrito por sudhanshublaze y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *