Ramka danych podzbioru na podstawie liczby wierszy na grupę

Mam takie dane, gdzie jakieś „imię” występuje więcej niż 3 razy:

df <- data.frame(name = c("a", "a", "a", "b", "b", "c", "c", "c", "c"), x = 1:9)

Chcę podzielić (filtrować) dane na podstawie liczby wierszy (obserwacji) na każdym poziomie zmiennej „nazwa”. Jeśli określony poziom „nazwy” występuje więcej niż powiedzmy 3 razy, chcę usunąć wszystkie wiersze należące do tego poziomu.

Napisałem ten kod, ale nie mogę go uruchomić.

as.data.frame(table(unique(df)$name))
subset(df, name > 3)

questionAnswers(2)

yourAnswerToTheQuestion