dplyr::rename_
是被弃用的函数,建议还是不要使用了吧。
另外你的需求也不是很明白,封装函数希望什么样的输入形式呢?
dplyr::rename
本身应该就足够使用了
library(dplyr, warn.conflicts = F)
data <- tibble(`测试(a)` = 1, y = 2, z = 3)
data %>% rename(`测试(b)` = `测试(a)`, zz = z)
#> # A tibble: 1 × 3
#> `测试(b)` y zz
#> <dbl> <dbl> <dbl>
#> 1 1 2 3
如果说你希望的是不在代码块中间一个一个写 rename 变量,而是提前写好 rename 规则,比如一个 named vector,然后在代码块中间直接调用,那这样写就可以了:
library(dplyr, warn.conflicts = F)
data <- tibble(`测试(a)` = 1, y = 2, z = 3)
rename_list <- c('测试(b)' = '测试(a)', 'zz' = 'z')
# 这样写也可以
# rename_list <- c('测试(a)', 'z') # old name
# names(rename_list) <- c('测试(b)', 'zz') # new name
data %>% rename(all_of(rename_list))
#> # A tibble: 1 × 3
#> `测试(b)` y zz
#> <dbl> <dbl> <dbl>
#> 1 1 2 3