如何使用新的 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"))))
在收到 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"))))