2015-05-29 13 views
7

Các chọn chức năng hoạt động tốt khi tôi cố gắng để đổi tên biến theo điều kiện nhất địnhdplyr Rename không làm việc với biểu thức chính quy

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

Tuy nhiên khi tôi cố gắng giữ tất cả các biến khác sử dụng

rename(iris, petal = starts_with("Petal")) 

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

Tôi không biết tại sao dplyr phàn nàn về điều này. Nếu hành vi này được dự định, cách đúng để đổi tên biến bằng cách sử dụng starts_with (hoặc chứa) trong khi vẫn giữ các biến khác ở đó là gì?

Trả lời

11

select đã đổi tên chúng cho bạn. Bạn có thể thêm everything() vào cuộc gọi để nhận phần còn lại của các cột

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 
... 
Các vấn đề liên quan