Вы можете сделать это в базе R:
f <- function(df, filter, var, FUN, ...)
{
filter <- as.list(match.call())$filter
ss <- eval(filter, envir = df, enclos = parent.frame())
FUN(subset(df, ss)[[deparse(substitute(var))]], ...)
}
Например:
df <- data.frame(a = 1:5, b = letters[1:5])
df
#> a b
#> 1 1 a
#> 2 2 b
#> 3 3 c
#> 4 4 d
#> 5 5 e
df %>% f(filter = a > 1 & a < 5, var = b, FUN = paste, collapse = " ")
#> [1] "b c d"