r - 如何为 enquos 类型的 quosures 测试 null 或缺失

标签 r rlang tidyeval

在 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/

    相关文章:

    在 R 中重新排列数据框中的列

    r - dplyr 重命名 - 错误 : `new_name` = old_name must be a symbol or a string, 不是公式

    r - 在 Linux 上的 Rstudio 中绘制图形时出错。 PangoCairo_Text 中的无效字符串

    r - 使用函数中的列名称列表进行 Tidyeval

    r - 使用 rlang 将权重传递给 glm()

    r - 根据不同位数对矩阵的行进行排序

    r - 在内部服务器上设置 Shiny 应用程序

    r - 如何在filter_at中使用.data?

    r - 一起使用 data.table 和 tidy eval : why group by does not work as expected, 为什么插入 ~ ?

    r - 使用 sparklyr 高效地将 data.table 写入 Spark