合并或左连接 R
merge or left join R
我有三个数据集,它们具有相同的索引列 (Key)、StudentId,并且都具有相同数量的观察值,我重复相同数量的观察值,但每个观察值的列和值不同。
Dataset 1
Id Lab
1 33
. .
2334 98
Dataset 2
Id Sports
1 83
. .
2334 933
Dataset 3
Id Lunch
1 33
. .
2334 238
我不知道为什么当我使用 merge 或 left_merge 合并所有三个数据集时,最终数据集显示的行数比它应该的多?
Dataset Final
Id Sports Lunch Lab
1 33 83 33
. .
3564 98 34 56
如果没有可重现的例子很难判断,但我最好的猜测是你的 Id
变量的值在你的数据集中略有不同。如果您正在使用 dplyr(假设您使用的是 left_join
),您可能会改用 inner_join()
,它仅合并 both 中包含的行数据集。 (但是,您的最终数据框的行数可能会少于您用于合并的三个数据框的行数。)
如果所有 3 个数据集的 Id
顺序相同,只需使用:
res <- cbind(d1,d2,d3)
我有三个数据集,它们具有相同的索引列 (Key)、StudentId,并且都具有相同数量的观察值,我重复相同数量的观察值,但每个观察值的列和值不同。
Dataset 1
Id Lab
1 33
. .
2334 98
Dataset 2
Id Sports
1 83
. .
2334 933
Dataset 3
Id Lunch
1 33
. .
2334 238
我不知道为什么当我使用 merge 或 left_merge 合并所有三个数据集时,最终数据集显示的行数比它应该的多?
Dataset Final
Id Sports Lunch Lab
1 33 83 33
. .
3564 98 34 56
如果没有可重现的例子很难判断,但我最好的猜测是你的 Id
变量的值在你的数据集中略有不同。如果您正在使用 dplyr(假设您使用的是 left_join
),您可能会改用 inner_join()
,它仅合并 both 中包含的行数据集。 (但是,您的最终数据框的行数可能会少于您用于合并的三个数据框的行数。)
如果所有 3 个数据集的 Id
顺序相同,只需使用:
res <- cbind(d1,d2,d3)