vacio studio seleccionar repetidos funcion filas eliminar elementos datos crear contar r duplicates unique duplicate-removal

studio - Eliminar valores de un vector que no están duplicados al menos x veces



funcion cbind en r (2)

Puedes hacer esto en una línea con la función ave :

a[ave(a, a, FUN=length) >= 3] # [1] 2 2 5 3 5 3 2 5 3

La llamada a ave(a, a, FUN=length) devuelve, para cada elemento a[i] en el vector a , el número total de veces que aparece a[i] dentro de a . Luego puede subconjuntar a , limitando a los índices donde la cantidad total de veces es 3 o más.

Dado un vector:

p.ej.:

a = c(1, 2, 2, 4, 5, 3, 5, 3, 2, 1, 5, 3)

Usando a[a%in%a[duplicated(a)]] puedo eliminar valores no duplicados. Sin embargo, solo funciona para valores que solo están presentes una vez.

¿Cómo podría continuar eliminando todos los valores que no están presentes en este tres veces? (o más, en otras situaciones)

El resultado esperado sería:

2 2 5 3 5 3 2 5 3

con 1 y 4 eliminado, ya que solo están presentes dos veces y una vez


Razonablemente sencillo (más largo que usar ave pero posiblemente más comprensible):

x <- c(1,2,2,4,5,3,5,3,2,1,5,3) tt <- table(x) ## tabulate ## find relevant values ttr <- as.numeric(names(tt)[tt>=3]) x[x %in% ttr] ## subset