我有以下数据框:
library(dplyr)
df <- data.frame(gh225 = "foo1", gh765 = "foo2", gauskper = "foo3") %>%
rename_all(funs(stringr::str_replace_all(., "gh", "v")))
我想结合使用 rename_all 和 if_else 但我找不到方法,逻辑应该是这样的(但有变量):
if_else(stringr::str_detect(columns, "au"), "id_per", columns)
话说回来,我想把gauskper这个名字改成id_per。
最佳答案
我们可以使用 rename_with
因为 rename_all
已弃用
library(dplyr)
library(stringr)
data.frame(gh225 = "foo1", gh765 = "foo2", gauskper = "foo3") %>%
rename_with(~ str_replace(., "au", "idper"), contains("au"))
关于if_else
的使用,只需要一个lambda表达式即~
data.frame(gh225 = "foo1", gh765 = "foo2", gauskper = "foo3") %>%
rename_with(~ if_else(str_detect(., "au"), "id_per", .), everything())
gh225 gh765 id_per
1 foo1 foo2 foo3
关于r - dplyr::rename_all & dplyr::if_else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68875447/