# as_quosure

0th

Percentile

##### Coerce object to quosure

Quosure objects wrap an expression with a lexical enclosure. This is a powerful quoting (see base::quote() and quo()) mechanism that makes it possible to carry and manipulate expressions while making sure that its symbolic content (symbols and named calls, see is_symbolic()) is correctly looked up during evaluation.

• new_quosure() creates a quosure from a raw expression and an environment.

• as_quosure() is useful for functions that expect quosures but allow specifying a raw expression as well. It has two possible effects: if x is not a quosure, it wraps it into a quosure bundling env as scope. If x is an unscoped quosure (see is_quosure()), env is used as a default scope. On the other hand if x has a valid enclosure, it is returned as is (even if env is not the same as the formula environment).

• While as_quosure() always returns a quosure (a one-sided formula), even when its input is a formula or a definition, as_quosureish() returns quosureish inputs as is.

##### Usage
as_quosure(x, env = caller_env())as_quosureish(x, env = caller_env())
##### Arguments
x

An object to convert.

env

An environment specifying the lexical enclosure of the quosure.

is_quosure()

##### Aliases
• as_quosure
• as_quosureish
##### Examples
# NOT RUN {
# Sometimes you get unscoped formulas because of quotation:
f <- ~~expr
inner_f <- f_rhs(f)
str(inner_f)
is_quosureish(inner_f, scoped = TRUE)

# You can use as_quosure() to provide a default environment:
as_quosure(inner_f, base_env())

# Or convert expressions or any R object to a validly scoped quosure:
as_quosure(quote(expr), base_env())
as_quosure(10L, base_env())

# While as_quosure() always returns a quosure (one-sided formula),
# as_quosureish() returns quosureish objects:
as_quosure(a := b)
as_quosureish(a := b)
as_quosureish(10L)
# }

Documentation reproduced from package rlang, version 0.1.6, License: GPL-3

### Community examples

Looks like there are no examples yet.