R: Cómo mantener y filtrar duplicados dentro de las filas
¿Es posible mantener y filtrar duplicados dentro de las filas?
Aquí hay datos ficticios:
a <- data.frame(c('a1', 'a1', 'a1', 'a2', 'a3', 'a3'),
c(1, 2, 3, 1, 2, 3),
stringsAsFactors = FALSE)
a
colnames(a) <- c('id', 'number')
a
# id number
# 1 a1 1
# 2 a1 2
# 3 a1 3
# 4 a2 1
# 5 a3 2
# 6 a3 3
# 'Resultado esperado
# id number
# 1 a1 1
# 2 a1 2
# 3 a1 3
# 5 a3 2
# 6 a3 3
Como puede ver, se eliminan las filas no duplicadas de la variable “id”.
¿Y podemos ajustar el filtrado? Por ejemplo: mantener y filtrar 3 o más duplicados dentro de la variable “id”.
¿Es alcanzable? El enfoque de dplyr
será útil.
Gracias.
davy.ai
Sí, es posible mantener y filtrar los duplicados dentro de las filas usando
dplyr
. Aquí te explico cómo:Para mantener solo la primera aparición de cada fila duplicada:
Para mantener solo los duplicados:
Para filtrar los duplicados dentro de la variable “id” si hay 3 o más duplicados:
La función
group_by()
se utiliza para agrupar los datos por la variable especificada antes de realizar cualquier operación en ella. La funciónfilter()
se utiliza para filtrar las filas según una condición.En el último ejemplo, utilizamos
n()
para contar el número de filas en cada grupo y filtramos los grupos con menos de 3 filas.