合并及;在r中交错数据帧

合并及;在r中交错数据帧,r,R,我有两个相同的数据帧。相同的列标题和行标题。一个有相关性,一个有p值。我想以交错的方式合并这两个表,以便第一列是相关性,下一列是p值,下一列是相关性等等 所以如果表1的列是A1,A2,A3。。。表2为B1、B2、B3。。。我希望结束表是A1,B1,A2,B2,A3,B3 我尝试过cbind,但这会将所有相关列放在第一位,然后是所有p值列。没有交错 我想知道是否有一个简单的方法 谢谢你的帮助 你迈出了正确的第一步,那就是cbinding。假设您的数据帧是d1,有n列A1、A2、…、An和d1,有n

我有两个相同的数据帧。相同的列标题和行标题。一个有相关性,一个有p值。我想以交错的方式合并这两个表,以便第一列是相关性,下一列是p值,下一列是相关性等等

所以如果表1的列是A1,A2,A3。。。表2为B1、B2、B3。。。我希望结束表是A1,B1,A2,B2,A3,B3

我尝试过cbind,但这会将所有相关列放在第一位,然后是所有p值列。没有交错

我想知道是否有一个简单的方法


谢谢你的帮助

你迈出了正确的第一步,那就是
cbind
ing。假设您的数据帧是
d1
,有n列
A1、A2、…、An
d1
,有n列
B1、B2、…、Bn
。然后
d另外,如果维度相同,则创建一个索引

 rbind(colnames(dataframe1), colnames(dataframe2))
例如:

 set.seed(1)
 d1 <- setNames(as.data.frame(matrix(sample(1:10,20, replace=T),5,5)), paste0("A",1:5))
 d2 <- setNames(as.data.frame(matrix(sample(1:10,20, replace=T),5,5)), paste0("B",1:5))

 d <- cbind(d1,d2)

 indx <- rbind(names(d1),names(d2))

  d[,indx]
 # A1 B1 A2 B2 A3 B3 A4 B4 A5 B5
 #1  3 10  9  4  3  5  5  7  3 10
 #2  4  3 10  1  2  6  8  8  4  3
 #3  6  7  7  4  7  5 10  2  6  7
 #4 10  2  7  9  4  2  4  8 10  2
 #5  3  3  1  4  8  9  8  5  3  3
set.seed(1)

d1与@akrun的答案相似,但使用索引而不是名称

#example data
set.seed(1)
d1 <- setNames(as.data.frame(matrix(sample(1:10,20, replace=T),5,5)), paste0("A",1:5))
d2 <- setNames(as.data.frame(matrix(sample(1:10,20, replace=T),5,5)), paste0("B",1:5))

#create indexes for the desired order
x <- order(c(1:ncol(d1), 1:ncol(d2)))
x
#[1]  1  6  2  7  3  8  4  9  5 10

#cbind d1 and d2, interleaving columns with x
d <- cbind(d1, d2)[,x]
#示例数据
种子(1)
d1应该有帮助。