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
...
当我尝试根据特定条件重命名变量时,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
...