在dplyr中重命名一堆变量

时间:2017-10-21 15:55:49

标签: r dplyr

在left_join之后,我有变量var1.x var2.x ...和var1.y var2.y。我想将它们重命名为var1_tot var2_totvar1_part var2_part。我可以这样做,但结合names和字符串替换函数。可以使用dplyr dplyr函数renameends_with将其作为{{1}}链的一部分来完成吗?

2 个答案:

答案 0 :(得分:3)

喜欢这个? dt是一个示例数据框。 dt2是最终输出。

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

答案 1 :(得分:-1)

实际上

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

做了工作