【问题标题】:R - dbplyr - `lang_name()` is deprecatedR - dbplyr - `lang_name()` 已弃用
【发布时间】:2019-09-17 15:07:43
【问题描述】:

我刚刚更新了 dblyr,从那一刻起我开始看到警告

警告消息:1:lang_name() 自 rlang 0.2.0 起已弃用。 请改用call_name()。此警告每次显示一次 会议。 2:lang() 自 rlang 0.2.0 起已弃用。请用 call2() 代替。此警告在每个会话中显示一次。

我不知道我该怎么做,因为我的代码看起来像这样

df <- tbl(conn, in_schema("schema", "table")) %>%
filter(status!= "CLOSED" | is.na(status)) %>%
      group_by(customer_id) %>%
      filter(created == min(created, na.rm = T)) %>%
      ungroup() %>%
      select(
        contract_number,
        customer_id,
        approved_date = created 
      ) %>%
      collect() 

我的代码中没有 call_name() 或 lang_name()。你们知道怎么回事吗?我知道我的代码即使有这个警告也能工作,但我不想看到它。

【问题讨论】:

    标签: r dbplyr


    【解决方案1】:

    正如您已经提到的,没有任何问题,您的代码可以正常工作,因为这是一个警告。 dbplyr 中的窗口函数仍然使用lang_name() 函数调用。窗口函数在您的 filter( ... == min(...)) 语句中调用。这个link 在 Github 上已经存在一个问题。

    如果你不想看到警告,你可以像这样抑制它:

    suppressWarnings(df <- tbl(conn, in_schema("schema", "table")) %>%
    filter(status!= "CLOSED" | is.na(status)) %>%
          group_by(customer_id) %>%
          filter(created == min(created, na.rm = T)) %>%
          ungroup() %>%
          select(
            contract_number,
            customer_id,
            approved_date = created 
          ) %>%
          collect())
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-12
      • 1970-01-01
      • 1970-01-01
      • 2022-10-20
      • 2016-03-03
      相关资源
      最近更新 更多