dplyr 重命名不适用于正则表达式

dplyr rename not working with regular expression

当我尝试根据特定条件重命名变量时,select 函数工作正常

require(dplyr)
select(iris, petal = starts_with("Petal"))

然而,当我尝试使用

保留所有其他变量时
rename(iris, petal = starts_with("Petal"))

Error: Arguments to rename must be unquoted variable names. Arguments petal are not.

我不知道为什么 dplyr 会抱怨这个。如果这种行为是有意的,那么在保留其他变量的同时使用 starts_with(或包含)重命名变量的正确方法是什么?

select 已经在为您重命名它们。您可以将 everything() 添加到调用中以获得其余列

select(iris, petal = starts_with("Petal"), everything())
#     petal1 petal2 Sepal.Length Sepal.Width    Species
# 1      1.4    0.2          5.1         3.5     setosa
# 2      1.4    0.2          4.9         3.0     setosa
# 3      1.3    0.2          4.7         3.2     setosa
# 4      1.5    0.2          4.6         3.1     setosa
# 5      1.4    0.2          5.0         3.6     setosa
# 6      1.7    0.4          5.4         3.9     setosa
# 7      1.4    0.3          4.6         3.4     setosa
# 8      1.5    0.2          5.0         3.4     setosa
# 9      1.4    0.2          4.4         2.9     setosa
...