我有两个相同的数据帧。相同的列和行标题。一个有相关性,一个有p值。我想以交错的方式合并这两个表,所以第一列是相关性,下一个p值,下一个相关性等。合并与交错数据帧在r
所以如果表1的列是A1,A2,A3 ...和表2是B1,B2,B3 ...我想结束表是A1,B1,A2,B2,A3,B3 ....
我试过cbind,但是这把所有相关列首先是所有的p值列。没有交错。
我想知道是否有简单的方法。
感谢您的帮助!
我有两个相同的数据帧。相同的列和行标题。一个有相关性,一个有p值。我想以交错的方式合并这两个表,所以第一列是相关性,下一个p值,下一个相关性等。合并与交错数据帧在r
所以如果表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 <- cbind(d1, d2)
会给你包含你想要的所有信息的数据框,而你只需要重新排列它的列。这相当于生成向量(1,(n + 1),2,(n + 2),...,n,2n)以索引数据帧列。你可以这样做s <- rep(1:n, each = 2) + (0:1) * n
。最后,你想要的数据帧是d[s]
。
出色地工作 - 非常感谢! – user3801778
此外,如果尺寸是相同的,创建索引
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
[本Q/A](http://stackoverflow.com/questions/16443260/interleave-lists-in-r)应该是有帮助的。 –