简单的问题 我们有两个不同的数据帧,其设置与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来创建一个组合数据帧调用它的combined_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))
什么是快速方式,它创建与combined_DF相同的输出?
更难的问题 实际上,需要合并的两个数据帧要大得多,实际上
DF1是156798 obs。 9个变量
DF2是6441 obs。 92个变量
现在如何合并DF_1和DF_2来创建一个组合数据帧调用它的combined_DF,它有156798个obs。 99个变量? (与简单问题的原理相同,但这次更大的数据帧)可以使用doMC :: registerDoMC来加速这个过程。
非常感谢答案:)
答案 0 :(得分: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
答案 1 :(得分: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)