This version of substitute is needed because substitute does not
evaluate it's first argument, and it's often useful to be able to modify
a quoted call.
substitute_q(x, env)a quoted call
an environment, or something that behaves like an environment
(like a list or data frame), or a reference to an environment (like a
positive integer or name, see as.environment for more
details)
x <- quote(a + b)
substitute(x, list(a = 1, b = 2))
#> x
substitute_q(x, list(a = 1, b = 2))
#> 1 + 2