Como filtrar (com dplyr) para todos os valores de um grupo se o limite variável for atingido?

Aqui estão os dados fictícios:

cases <- rep(1:5,times=2)
var1 <- as.numeric(c(450,100,250,999,200,500,980,10,700,1000))
var2 <- as.numeric(c(111,222,333,444,424,634,915,12,105,152))

maindata1 <- data.frame(cases,var1,var2)

df1 <-  maindata1 %>%
  filter(var1 >950) %>%
  distinct(cases) %>%
  select(cases)

table1 <- maindata1 %>%
  filter(cases == 2 | cases == 4 | cases == 5) %>%
  arrange(cases)

> table1
  cases var1 var2
1     2  100  222
2     2  980  915
3     4  999  444
4     4  700  105
5     5  200  424
6     5 1000  152

Eu estou tentando formular um dataframe que contém todos os dados relacionados aos casos em que var1> 950, para mostrar todos os valores de var1 para esses casos (também aqueles que são <950) e todos os valores de var2 e descartaria todos os casos onde var1 não alcançará> 950. Tabela1 produz o quadro de dados desejado, mas eu tive que inserir as condições de filtragem manualmente. Existe uma maneira de usar esses casos df1 $ como uma condição de filtragem para extrair o mesmo quadro de dados como resultado?

Eu sou novo no R e estou tentando aprender a manipulação de dados principalmente com dplyr porque sua sintaxe é quase compreensível para leigos .. por isso, se alguém puder oferecer uma solução baseada em dplyr que seria fantástica, é claro que estou disposto a ouvir soluções baseadas em em outros pacotes também.

questionAnswers(1)

yourAnswerToTheQuestion