Usando dplyr filter () en la programación
Estoy escribiendo mi función y quiero usar la función filter () de dplyr para seleccionar filas de mi marco de datos que satisfagan una condición. Este es mi 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()
Cada vez que ejecuto esta función, parece quefilter
no selecciona ninguna fila que satisfaga la condición.
¿Cómo puedo hacer que esto funcione?
Actualizar
Por alguna razón, esto funciona cuando no uso `% en%, como en;
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()
Sin embargo, los resultados son los mismos para cada ciclo. ¿Por qué esto es tan? y también por qué no puedo usar%in%
.