当具有相似值的列具有相似的行值时合并两个不同的数据框
Merge two different dataframes when column with similar value has similar row value
简单的问题
我们有两个不同的数据帧,其设置与 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 来加快这一过程。
非常感谢回答:)
通过基础 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
并非 100% 符合您的要求。要么你想并排放置 table,其中是一个列绑定,或者一个在另一个下面,这是一个行绑定,或者你想加入 tables 这是一个加入..你能再澄清一点吗?
我不明白您的可重现示例。
通过 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)
简单的问题 我们有两个不同的数据帧,其设置与 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 来加快这一过程。
非常感谢回答:)
通过基础 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
并非 100% 符合您的要求。要么你想并排放置 table,其中是一个列绑定,或者一个在另一个下面,这是一个行绑定,或者你想加入 tables 这是一个加入..你能再澄清一点吗? 我不明白您的可重现示例。
通过 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)