Nicktz
5/11/2016 - 8:15 AM

Lazy eval and filter_

This is a useful means of using vector inputs in filters for dplyr:

Function_Name <- lazyeval::interp(~Function(a), a = as.name(VectorInput))

df %>%
filter_(Function_Name)

This applies the Function on the VectorInput to a filter.

E.g., to get complete cases for a vector, use:

LazyCompleteCases <- lazyeval::interp(~complete.cases(a), a = as.name(VectorInput))
LazyNonZero <- lazyeval::interp(~a != 0, a = as.name(VectorInput))
LazyQuantileTrim <- lazyeval::interp(~ a < quantile(a,probs = (1 - Filter), na.rm = TRUE), a = as.name(VectorInput))

Lazy
df %>%
filter_(LazyCompleteCases)