-2

简单的问题 我们有两个不同的数据帧,它们的设置与 DF_1 和 DF_2 的输出相似

DF_1 = as.data.frame(matrix(c(1,2,3,4,20,55,12,44),nrow=4,ncol=2))
DF_2 = as.data.frame(matrix(c(1,2,3,4,33,32,21,44,66,71),nrow=2,ncol=5))

如何合并 DF_1 和 DF_2 以创建组合数据框,将其称为 combine_DF,它看起来像这个的输出

combined_DF = as.data.frame(matrix(c(1,2,1,2,20,55,12,44,3,4,3,4,33,32,33,32,21,44,21,44,66,71,66,71),nrow=4,ncol=6))

什么是一种快速的方法,它可以创建与 combine_DF 相同的输出?

更难的问题 实际上需要合并的两个数据框要大得多

DF1 是 156798 obs。9 个变量

DF2 是 6441 obs。92 个变量

现在如何合并 DF_1 和 DF_2 来创建一个组合数据框,称为组合 DF,它有 156798 个 obs。99 个变量?(与简单问题的原理相同,但这次数据帧更大)可以使用 doMC::registerDoMC 来加速这个过程。

非常感谢答案:)

4

2 回答 2

0

不是 100% 满足您的要求。要么您只想将表格并排放置,其中是列绑定,或者一个在另一个下方是行绑定,或者您正在尝试连接作为连接的表格..您能否澄清一下更多的?我不明白你的可重复的例子。

通过 dplyr

library(dplyr)
combined_DF <- bind_cols(DF_1, DF_2)

或者

combined_DF <- bind_rows(DF_1, DF_2)

或者

combined_DF <- left_join(DF_1, DF_2)
于 2017-05-11T18:57:28.860 回答
0

通过基础 R,

 cbind(V6 = DF_1$V2, DF_2[rep(rownames(DF_2), nrow(DF_1) - nrow(DF_2)),])

#    V6 V1 V2 V3 V4 V5
#1   20  1  3 33 21 66
#2   55  2  4 32 44 71
#1.1 12  1  3 33 21 66
#2.1 44  2  4 32 44 71
于 2017-05-11T12:46:47.893 回答