У меня есть такие данные, где какое-то "имя" встречается более трех раз:
df <- data.frame(name = c("a", "a", "a", "b", "b", "c", "c", "c", "c"), x = 1:9)
name x
1 a 1
2 a 2
3 a 3
4 b 4
5 b 5
6 c 6
7 c 7
8 c 8
9 c 9
Я хочу разместить (отфильтровать) данные на основе количества строк (наблюдений) на каждом уровне переменной name
. Если определенный уровень name
встречается больше, чем, скажем, 3 раза, я хочу удалить все строки, принадлежащие этому уровню. Так что в этом примере мы отбросим наблюдения, где name == c
, так как в этой группе есть строки > 3
:
name x
1 a 1
2 a 2
3 a 3
4 b 4
5 b 5
Я написал этот код, но не могу заставить его работать.
as.data.frame(table(unique(df)$name))
subset(df, name > 3)