| bru_data_mask | R Documentation |
Create a data mask for inlabru, which allows for evaluating
expressions in the context of the data objects, with support for tidy
evaluation pronouns and direct access to the data objects as .name.. This
is an internal inlabru method, not intended for general use.
bru_data_mask(data, pronouns = NULL, objects = NULL)
data |
list of data objects in priority order. Named elements will be
available as whole objects Can include an object with evaluator functions such as those generated by
|
pronouns, objects |
If |
A data mask environment for use with rlang::eval_tidy().
m <- bru_data_mask(
data = list(
data = data.frame(z = 11:14),
extra_data = list(something = 1:2)
)
)
rlang::eval_tidy(
rlang::quo(z + rep(.extra_data$something, 2)),
data = m
)
mask <- bru_data_mask(list(data = list(x = 1:4)))
rlang::eval_tidy(rlang::quo(x), data = mask)
rlang::eval_tidy(rlang::quo(.data$x), data = mask)
rlang::eval_tidy(rlang::quo(.data.$x), data = mask)
# Using functions that need to call eval_tidy using the data mask:
fun_factory <- function() {
.get_mask <- function(frame = parent.frame(2L)) {
rlang::eval_tidy(rlang::parse_expr(".mask."), env = frame)
}
.eval_tidy <- function(expr, frame = parent.frame(2L)) {
mask <- .get_mask(frame)
rlang::eval_tidy(expr, data = mask, env = frame)
}
.addition <- 5L
fun <- function(nm) {
val <- .eval_tidy(rlang::expr(.data[[nm]]))
val + .addition
}
list(fun = fun)
}
mask <- bru_data_mask(list(data = list(x = 1:4), fun = fun_factory()))
rlang::eval_tidy(rlang::quo(fun("x")), data = mask)
rlang::eval_tidy(rlang::quo(.fun$fun("x")), data = mask)
rlang::eval_tidy(rlang::quo(.fun.$fun("x")), data = mask)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.