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%
.