如何为 enquos 类型的 quosures 测试 null 或 missing
How to test null or missing for enquos-type quosures
在 rlang 中有一个非常微妙(并且非常令人困惑)的区别,即...quosures 不是 quosure 对象!换句话说:
quo()
和 enquo()
return 一个 quosure
quos()
和enquos()
return一个quosureS,不是一个quosure(is_quosure(enquos(...))
returns FALSE
)
等价于 quo_is_null()
和 quo_is_missing()
的等价物是什么?特别是,我想测试 enquos(...)
捕获的 ...
参数是 null/missing,我该怎么做?
library(rlang)
fo1 <- function(df, var1) {
dot_vars <- rlang::enquo(var1)
quo_is_missing(dot_vars)
}
fo2 <- function(df, ...) {
dot_vars <- rlang::enquos(...)
quo_is_missing(dot_vars)
}
fo1()
#> [1] TRUE
fo2()
#> `quo` must be a quosure
用length(dot_vars)
判断是否长度为0
在 rlang 中有一个非常微妙(并且非常令人困惑)的区别,即...quosures 不是 quosure 对象!换句话说:
quo()
和enquo()
return 一个 quosurequos()
和enquos()
return一个quosureS,不是一个quosure(is_quosure(enquos(...))
returnsFALSE
)
等价于 quo_is_null()
和 quo_is_missing()
的等价物是什么?特别是,我想测试 enquos(...)
捕获的 ...
参数是 null/missing,我该怎么做?
library(rlang)
fo1 <- function(df, var1) {
dot_vars <- rlang::enquo(var1)
quo_is_missing(dot_vars)
}
fo2 <- function(df, ...) {
dot_vars <- rlang::enquos(...)
quo_is_missing(dot_vars)
}
fo1()
#> [1] TRUE
fo2()
#> `quo` must be a quosure
用length(dot_vars)
判断是否长度为0