This function is a wrapper around rlang::as_function() which adds a two extra features:

  • formulas can use .t in place of .x to be easier to understand in time-based functions

  • functions can take additional named arguments.

as_function(x, env = parent.frame())

Arguments

x

a function or formula, see rlang::as_function() for more information

env

Environment in which to fetch the function in case x is a string

Value

Either:

  • the function as it is passed to as_function(), whether as a string or a name

  • the function derived from a formula, where the first argument is passed as ., .x or .t, the second argument is passed as .y and any other named arguments are passed as they are named

Examples

f1 <- as_function(mean) f1(1:10)
#> [1] 5.5
f2 <- as_function("sum") f2(1,2,3)
#> [1] 6
f3 <- as_function(~.x + 1) f3(9)
#> [1] 10
f4 <- as_function(~ .t + 1) f4(10)
#> [1] 11
f5 <- as_function(~.x + .y) f5(1,2)
#> [1] 3
f6 <- as_function(~ .t + alpha) f6(10, alpha = 2)
#> [1] 12