dplyr-重命名列的顺序与选择功能(dplyr- renaming sequence of col

2019-10-24 14:29发布

我试图在重命名我的专栏dplyr 。 我发现,做select的功能。 然而,当我尝试重命名序列一些选定列我不能重命名他们,我想要的格式。

test = data.frame(x = rep(1:3, each = 2),
              group =rep(c("Group 1","Group 2"),3),
              y1=c(22,8,11,4,7,5),
              y2=c(22,18,21,14,17,15),  
              y3=c(23,18,51,44,27,35),
              y4=c(21,28,311,24,227,225))

CC <- paste("CC",seq(0,3,1),sep="")
aa<-test%>%
select(AC=x,AR=group,CC=y1:y4)

头(AA)

  AC      AR CC1 CC2 CC3 CC4
1  1 Group 1  22  22  23  21
2  1 Group 2   8  18  18  28
3  2 Group 1  11  21  51 311
4  2 Group 2   4  14  44  24
5  3 Group 1   7  17  27 227
6  3 Group 2   5  15  35 225

问题是,即使我设置CC从价值CC0, CC1, CC2, CC3的输出提供自动从头部开始的姓名CC1 。 我怎样才能解决这个问题呢?

Answer 1:

我想你会玩得更轻松地装箱用这样的表达select_功能:

library(dplyr)

test <- data.frame(x=rep(1:3, each=2),
                   group=rep(c("Group 1", "Group 2"), 3),
                   y1=c(22, 8, 11, 4, 7, 5),
                   y2=c(22, 18, 21, 14, 17, 15),
                   y3=c(23, 18, 51, 44, 27, 35),
                   y4=c(21, 28, 311,24, 227, 225))

# build out our select "translation" named vector
DQ <- paste0("y", 1:4)
names(DQ) <- paste0("DQ", seq(0, 3, 1))

# take a look
DQ

##  DQ0  DQ1  DQ2  DQ3 
## "y1" "y2" "y3" "y4"

test %>%
  select_("AC"="x", "AR"="group", .dots=DQ)

##   AC      AR DQ0 DQ1 DQ2 DQ3
## 1  1 Group 1  22  22  23  21
## 2  1 Group 2   8  18  18  28
## 3  2 Group 1  11  21  51 311
## 4  2 Group 2   4  14  44  24
## 5  3 Group 1   7  17  27 227
## 6  3 Group 2   5  15  35 225


文章来源: dplyr- renaming sequence of columns with select function
标签: r dplyr