我有以下3个数据框:
df.1<-as.data.frame(matrix(rnorm(10),250,149))
df.2<-as.data.frame(matrix(rnorm(10),250,149))
df.3<-as.data.frame(matrix(rnorm(10),250,149))
我想在以下条件下创建另一个数据框:
the columns 1,4,7,10,...445 of df.4... will be the columns from df.1
the columns 2,5,8,11,...446 of df.4... will be the columns from df.2
the columns 3,6,9,12,...447 of df.4... will be the columns from df.3
在结尾,我的df.4将具有3*149
列。
我该如何使用dplyr
软件包及其功能?
也是最重要的,我该如何维护列名?
答案 0 :(得分:1)
为此,我们将数据帧与bind_cols()
合并,然后与select()
重新排序,如下所示:
library (dplyr)
df.4 <- bind_cols(df.1, df.2, df.3)
# create the column order
order <- c()
for(i in 1:149){
temp <- c(i, i+149, i+298)
order <- c(order, temp)
}
df.4 <- df.4 %>% select(order)
此处使用的循环遍历数字1:149,无论数据大小如何,它都不会变慢