在收到有关Dplyr中的named_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()尝试多个版本。我不能使它工作。我仍然可以使用旧代码,但我希望此代码将来可以重现,因为这对我的公司来说是一项重要的研究。任何帮助表示赞赏。
答案 0 :(得分:0)
rename_at
seems fine in this case, but the syntax changed a little.
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"))))