Dplyr rename not working with regex

The select function works fine when I try to rename variables according to certain conditions

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

However, when I try to save all other variables using

 rename(iris, petal = starts_with("Petal")) Error: Arguments to rename must be unquoted variable names. Arguments petal are not. 

I have no idea why dplyr complains about this. If this behavior is intended, what is the correct way to rename variables using start_with (or contains) while storing other variables there?

+7
r dplyr
source share
1 answer

select already renaming them for you. You can add everything() to the call to get the rest of the columns

 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 ... 
+11
source share

All Articles