veces studio repite repetidos quitar palabras eliminar duplicados duplicadas datos dato cuantas contar como columnas r duplicates duplicate-data

studio - MĂșltiples duplicados(2 veces, 3 veces,...) en R



eliminar duplicados en r studio (2)

Después de buscar por un tiempo, sé que esta pregunta aún no ha sido respondida. Supongamos que tengo el siguiente vector

v <- c("a", "b", "b", "c","c","c", "d", "d", "d", "d")

¿Cómo encuentro que esos valores tengan más de 1 duplicado?

(debe ser "c","c","c", "d", "d", "d", "d")

y más de 2 duplicados

(debe ser "d", "d", "d", "d" )

La función duplicated(v) solo devuelve valores que tienen duplicados.


Puede generar una table() y luego verificar qué elementos de v son parte del subconjunto relevante de la tabla, por ej.

R> v <- c("a", "b", "b", "c","c","c", "d", "d", "d", "d") R> tab <- table(v) R> tab v a b c d 1 2 3 4 R> v[v %in% names(tab[tab > 2])] [1] "c" "c" "c" "d" "d" "d" "d" R> v[v %in% names(tab[tab > 3])] [1] "d" "d" "d" "d"


Yo usaría ave para escribir una función simple como esta:

myFun <- function(vector, thresh) { ind <- ave(rep(1, length(vector)), vector, FUN = length) vector[ind > thresh + 1] ## added "+1" to match your terminology }

Aquí se aplica a "v":

myFun(v, 1) # [1] "c" "c" "c" "d" "d" "d" "d" myFun(v, 2) # [1] "d" "d" "d" "d"

Por supuesto, siempre hay "data.table":

as.data.table(v)[, N := .N, by = v][N > 1 + 1]$v # [1] "c" "c" "c" "d" "d" "d" "d" as.data.table(v)[, N := .N, by = v][N > 2 + 1]$v # [1] "d" "d" "d" "d"