如何使用新的 vars_rename 函数

How to use the new vars_rename function

在收到 Dplyr 中的 rename_at() 已被弃用的软警告后,我正在尝试在 tidyselect 中使用新建议的 vars_rename() 函数。但是,我没有运气让它工作,而且文档很神秘。它告诉我使用 list() 而不是 funs(),然后显示了一个 ~f(.) 的例子,这并没有什么帮助。

我需要一次重命名多个列。以前,我会这样做:

iris %>% rename_at(vars(starts_with("Sepal.")), funs(paste0(c("foobar.length", "foobar.width"))))

当我尝试建议的 tidyselect 代码时

iris %>% vars_rename(starts_with("Sepal.") = c("foobar.width", "foobar.length"))

我收到错误消息:"iris ..."

中出现意外的“=”

如果我尝试以下

iris %>% vars_rename(starts_with("Sepal."), c("foobar.width", "foobar.length"))

我得到一个错误:必须命名所有参数。

我已经使用 list() 尝试了多个版本。我不能让它工作。我仍然可以使用旧代码,但我希望它在未来可以重现,因为这对我的公司来说是一项重要的研究。感谢任何帮助。

rename_at 在这种情况下似乎没问题,但语法略有变化。

instead of funs one uses list, and adds a tilde to before paste0 in this case.
    old:
    iris %>% rename_at(vars(starts_with("Sepal.")), funs(paste0(c("foobar.length", "foobar.width"))))
    new:
    iris %>% rename_at(vars(starts_with("Sepal.")), list(~paste0(c("foobar.length", "foobar.width"))))