This tag covers questions about non-standard evaluation, which deals with the creation and manipulation of unevaluated expressions. This includes base R functions like call() and substitute(), as well as the more sophisticated tools provided by the rlang package. The latter are often also tagged with "tidyeval".
Non-Standard Evaluation (NSE) is a form of metaprogramming that focuses on the creation and manipulation of unevaluated expressions in r. This is in contrast to Standard Evaluation (SE), where each expression encountered by the interpreter is immediately evaluated in its surrounding context. Using NSE tools, programmers can capture an expression and delay its evaluation, thus allowing the expression to reference variables and functions that may not yet exist when the expression is first defined. This is useful for parameterizing function calls, accessing data frame columns, and referencing variables, all with deferred interpretation.
Base NSE functionality in R is substantially extended by the rlang package, which introduces the "immediate evaluation" operator !!
and the ability to capture quosures, which consist of expressions along with their surrounding context.