R - dbplyr - `lang_name()` 已弃用

R - dbplyr - `lang_name()` is deprecated

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

Warning messages: 1: lang_name() is deprecated as of rlang 0.2.0. Please use call_name() instead. This warning is displayed once per session. 2: lang() is deprecated as of rlang 0.2.0. Please use call2() instead. This warning is displayed once per session.

我不知道我该怎么做,因为我的代码是这样的

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()。你们知道怎么了吗?我知道我的代码即使有这个警告也能正常工作,但我不想看到它。

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

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

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())