Usando o filtro dplyr () na programação

Estou escrevendo minha função e quero usar a função filter () do dplyr para selecionar linhas do meu quadro de dados que satisfaçam uma condição. Este é o meu código:

library(tidyverse)

df <-data.frame(x = sample(1:100, 50), y = rnorm(50), z = sample(1:100,50), w = sample(1:100, 50),
            p = sample(1:100,50))

new <- function(ang,brad,drau){
  df%>%filter(!!drau %in% 1:50)%>%select(ang,brad) -> A
return(A)
}

brand <- c("z","w","p")
lapply(1:3, function(i) new(ang = "x", brad = "y", drau = brand[i]))%>%bind_rows()

Sempre que executo essa função, parece quefilter não seleciona nenhuma linha que atenda à condição.

Como posso fazer isso funcionar?

Atualizar

Por alguma razão, isso funciona quando eu não uso `% em%, como em;

new <- function(ang,brad,drau){
  df%>%filter(!!drau > 50)%>%select(ang,brad) -> A
return(A)
}

lapply(1:3, function(i) new(ang = "x", brad = "y", drau = brand[i]))%>%bind_rows()

No entanto, os resultados são os mesmos para cada loop. Porque isto é assim? e também por que não posso usar%in%.

questionAnswers(2)

yourAnswerToTheQuestion