Таблица с минимальной частотой - PullRequest
0 голосов
/ 22 января 2019

У меня есть вектор чисел, и я хочу, чтобы все записи происходили с минимальной частотой:

set.seed(1)

min <- 3

vec <- rpois(20, 1)
vec
#> 0 1 1 2 0 2 3 1 1 0 0 0 1 1 2 1 1 4 1 2

table(vec)
#> vec
#> 0 1 2 3 4 
#> 5 9 4 1 1

В этом случае я хочу отбросить 3 и 4 и оставить только 01 и 2, так как они встречаются более 3 раз.

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Предполагая, что i1 является вашим table

i1 <- table(vec)
vec[vec %in% names(i1)[i1 > min]]
#[1] 0 1 1 2 0 2 1 1 0 0 0 1 1 2 1 1 1 2
0 голосов
/ 22 января 2019

Один вариант с использованием ave

vec[ave(vec, vec, FUN = length) > min]
#[1] 0 1 1 2 0 2 1 1 0 0 0 1 1 2 1 1 1 2
...