说我有2个数据框
dfA <- data.frame(x = rpois(10,2), y = rpois(10,2), z = rpois(10,2), q = rpois(10,2), t = rpois(10,2))
dfB <- data.frame(a = rpois(10,2), b = rpois(10,2), c = rpois(10,2), d = rpois(10,2), e = rpois(10,2))
使用常规的
merge(dfA, dfB)
,我按以下顺序获取具有列的数据框:x,y,z,q,t,a,b,c,d,e如何合并数据框以按以下顺序获取包含列的数据框:
x,a,y,b,z,c,q,d,t,e
即。每个数据帧的第一列彼此相邻,然后是第二列,然后是第三列,依此类推。
最佳答案
一种选择是根据两个数据集连接的列顺序order
out <- merge(dfA, dfB)
out1 <- out[order(c(seq_along(dfA), seq_along(dfB)))]
names(out1)
#[1] "x" "a" "y" "b" "z" "c" "q" "d" "t" "e"
或
rbind
列名,然后将其强制为vector
,使其按matrix/data.frame
中的自然列顺序折叠out1 <- out[c(rbind(names(dfA), names(dfB)))]
names(out1)
#[1] "x" "a" "y" "b" "z" "c" "q" "d" "t" "e"
关于r - R如何以编织方式合并数据帧,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59794491/