2017-10-21 5 views
1

left_join 뒤에 변수 var1.x var2.x ... 및 var1.y var2.y이 있습니다. 이 파일의 이름을 var1_tot var2_totvar1_part var2_part으로 변경하고 싶습니다. 이 작업을 수행 할 수 있지만 names과 문자열 바꾸기 기능을 결합하면됩니다. 이것은 dplyrrename 함수와 ends_with 함수를 사용하여 dplyr 체인의 일부로 수행 할 수 있습니까?dplyr의 변수 이름 바꾸기

답변

4

좋아요? dt은 예제 데이터 프레임입니다. dt2이 최종 출력입니다. 사실

mydf %>% rename_at(vars(ends_with(".x")),funs(str_replace(.,".x","_total"))) 

에서

library(dplyr) 

dt <- data_frame(var1.x = 1:3, var2.x = 4:6, var1.y = 7:9, var2.y = 10:12) 

dt2 <- dt %>% 
    rename_at(vars(ends_with(".x")), funs(sub(".x", "_tot", .))) %>% 
    rename_at(vars(ends_with(".y")), funs(sub(".y", "_part", .))) 
dt2 
# A tibble: 3 x 4 
    var1_tot var2_tot var1_part var2_part 
    <int> <int>  <int>  <int> 
1  1  4   7  10 
2  2  5   8  11 
3  3  6   9  12 
+0

일을했고, 그것은 작동하지 DIT. –

+0

'stringr'을 사용하지 않았습니다. 그래서 당신의 요점은 무엇입니까? – www

+0

@ErichNeuwirth'str_replace'를 사용하기 위해 인수의 순서를 조정 했습니까? –

-1

대신 내가 stringr``에서`str_replace`를 사용하여 시도`sub`의

+0

당신의 원래 질문은'rename'과'dplyr'에서'ends_with'에 관한 것입니다. 'stringr'에서'str_replace'를 사용할 특별한 이유가 있습니까? 'sub'를'str_replace'로 바꾸는 것은 근본적으로 내 솔루션의 성격을 바꾸지 않습니다. – www

관련 문제