2015-05-29 65 views
7

的選擇功能工作正常,當我試圖根據特定的條件dplyr重命名不能與正則表達式的工作

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(或contains)重命名變量的正確方法是什麼?

回答

11

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 
...