Eliminar filas duplicadas por columna en R
-
Utilice la función
distinct
del paquetedplyr
para eliminar filas duplicadas por columna en R -
Utilice las funciones
group_by
,filter
yduplicated
para eliminar filas duplicadas por columna en R -
Utilice las funciones
group_by
yslice
para eliminar filas duplicadas por columna en R
Este artículo presentará cómo eliminar filas duplicadas por columna en R.
Utilice la función distinct
del paquete dplyr
para eliminar filas duplicadas por columna en R
El paquete dplyr
proporciona la función distinct
, una de las bibliotecas de manipulación de datos más comunes utilizadas en el lenguaje R. Distinto
selecciona filas únicas en el DataFrame dado. Toma el DataFrame como primer argumento y luego las variables que deben tenerse en cuenta durante la selección. Se pueden proporcionar varias variables de columna para filtrar las filas únicas, pero en el siguiente fragmento de código, demostramos los ejemplos de una sola variable. El tercer argumento es opcional y tiene el valor predeterminado: FALSE
, pero si el usuario pasa explícitamente TRUE
, la función mantendrá todas las variables en el DataFrame después del filtrado. Tenga en cuenta que dplyr
utiliza una función de operador llamada tuberías de forma - %>%
, que se interpreta como el suministro de la variable de la izquierda como el primer argumento de la función de la derecha. Es decir, la notación x %?% f(y)
se convierte en f(x, y)
.
library(dplyr)
df1 <- data.frame(id = c(1, 2, 2, 3, 3, 4, 5, 5),
gender = c("F", "F", "M", "F", "B", "B", "F", "M"),
variant = c("a", "b", "c", "d", "e", "f", "g", "h"))
t1 <- df1 %>% distinct(id, .keep_all = TRUE)
t2 <- df1 %>% distinct(gender, .keep_all = TRUE)
t3 <- df1 %>% distinct(variant, .keep_all = TRUE)
df2 <- mtcars
tmp1 <- df2 %>% distinct(cyl, .keep_all = TRUE)
tmp2 <- df2 %>% distinct(mpg, .keep_all = TRUE)
Utilice las funciones group_by
, filter
y duplicated
para eliminar filas duplicadas por columna en R
Otra solución para eliminar filas duplicadas por valores de columna es agrupar el DataFrame con la variable de columna y luego filtrar elementos usando las funciones de filter
y duplicated
. El primer paso se realiza con la función group_by
que forma parte del paquete dplyr
. A continuación, la salida de la operación anterior se redirige a la función filter
para eliminar filas duplicadas.
library(dplyr)
df1 <- data.frame(id = c(1, 2, 2, 3, 3, 4, 5, 5),
gender = c("F", "F", "M", "F", "B", "B", "F", "M"),
variant = c("a", "b", "c", "d", "e", "f", "g", "h"))
t1 <- df1 %>% group_by(id) %>% filter (! duplicated(id))
t2 <- df1 %>% group_by(gender) %>% filter (! duplicated(gender))
t3 <- df1 %>% group_by(variant) %>% filter (! duplicated(variant))
df2 <- mtcars
tmp3 <- df2 %>% group_by(cyl) %>% filter (! duplicated(cyl))
tmp4 <- df2 %>% group_by(mpg) %>% filter (! duplicated(mpg))
Utilice las funciones group_by
y slice
para eliminar filas duplicadas por columna en R
Alternativamente, se puede utilizar la función group_by
junto con slice
para eliminar filas duplicadas por valores de columna. slice
también forma parte del paquete dplyr
y selecciona filas por índice. Curiosamente, cuando el DataFrame está agrupado, entonces slice
seleccionará las filas en el índice dado en cada grupo, como se demuestra en el siguiente código de muestra.
library(dplyr)
df1 <- data.frame(id = c(1, 2, 2, 3, 3, 4, 5, 5),
gender = c("F", "F", "M", "F", "B", "B", "F", "M"),
variant = c("a", "b", "c", "d", "e", "f", "g", "h"))
t1 <- df1 %>% group_by(id) %>% slice(1)
t2 <- df1 %>% group_by(gender) %>% slice(1)
t3 <- df1 %>% group_by(variant) %>% slice(1)
df2 <- mtcars
tmp5 <- df2 %>% group_by(cyl) %>% slice(1)
tmp6 <- df2 %>% group_by(mpg) %>% slice(1)
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook