R按特定顺序合并数据帧

R按特定顺序合并数据帧,r,dataframe,R,Dataframe,我有三个大小相等的数据帧,我想按特定顺序合并,这样我就可以使用write.table制作一个格式化的文本文件,供其他程序使用 我想要这个: dataframeA_col1 dataframeB_col1 dataframeC_col1 dataframeA_col2 dataframeB_col2 dataframeC_col2等 不是这个: dataframeA_col1 dataframeA_col2 dataframeB_col1 dataframeB_col2 我开始写下面的循环,它可以

我有三个大小相等的数据帧,我想按特定顺序合并,这样我就可以使用
write.table
制作一个格式化的文本文件,供其他程序使用

我想要这个:

dataframeA_col1 dataframeB_col1 dataframeC_col1 dataframeA_col2 dataframeB_col2 dataframeC_col2等

不是这个: dataframeA_col1 dataframeA_col2 dataframeB_col1 dataframeB_col2

我开始写下面的循环,它可以工作,但只给出前3列。我如何修复这个循环,或者有更好的方法吗

temp <- c()
for(i in length(dataframeA)){
temp <- cbind(temp, dataframeA[,i], dataframeB[,i], dataframeC[,i])
i <- i+1
}

temp当然,这里有一个无循环的方法:

dfA <- data.frame(col1 = 1:4, col2 = 1:4, col3 = 1:4)
dfB <- dfA
dfC <- dfA
colSeq <- c ( matrix(1 : (3*ncol(dfA)), 3, ncol(dfA), byrow = TRUE) )
现在使用这个
colSeq
来重新排列
cbind(dfA,dfB,dfC)的列


当然,这里有一个无循环的方法:

dfA <- data.frame(col1 = 1:4, col2 = 1:4, col3 = 1:4)
dfB <- dfA
dfC <- dfA
colSeq <- c ( matrix(1 : (3*ncol(dfA)), 3, ncol(dfA), byrow = TRUE) )
现在使用这个
colSeq
来重新排列
cbind(dfA,dfB,dfC)的列


非常好的回答,比我最初的方法简单和优雅得多。谢谢。。。请注意
colSeq
矩阵中的轻微编辑——使用
ncol(dfA)
作为矩阵的列数(更一般)。非常好的答案,比我最初的方法简单得多。谢谢。。。请注意
colSeq
矩阵中的轻微编辑——使用
ncol(dfA)
表示矩阵的列数(更一般)。
> cbind(A = dfA, B = dfB, C = dfC)[, colSeq ]
  A.col1 B.col1 C.col1 A.col2 B.col2 C.col2 A.col3 B.col3 C.col3
1      1      1      1      1      1      1      1      1      1
2      2      2      2      2      2      2      2      2      2
3      3      3      3      3      3      3      3      3      3
4      4      4      4      4      4      4      4      4      4