在 rlang 中有一个非常微妙(并且非常令人困惑)的区别...... quosures 不是 quosure 对象!换句话说:
quo()
和 enquo()
退订quos()
和 enquos()
退订小号 , 不是 quosure ( is_quosure(enquos(...))
返回 FALSE
) 相当于
quo_is_null()
和 quo_is_missing()
为了定额?我特别想测试...
参数,由 enquos(...)
捕获, 为空/缺失,我该怎么做?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。
关于r - 如何为 enquos 类型的 quosures 测试 null 或缺失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56014062/