我有两个数据框,如下所示,并且正在尝试添加一个新列。我想在数据帧1中添加一个新列,它来自于匹配数据帧1中具有不同名称(名称,年龄,国家)和Dataframe2中(第一,年龄,BornPlace)的3个不同列。
我已经尝试过过滤和设置新列,但我无法对df1中的每一行都执行操作。
Data frame 1
Name Age Country Unrelated Unrelated
1 Josh 15 USA ... ...
2 Kyle 18 USA ... ...
3 Pete 17 USA ... ...
4 Devin 19 USA ... ...
5 Josh 15 Canada ... ...
Data frame 2
First AgeNum BornPlace Unrelated Unrelated Weight
1 Max 25 USA ... ... 150
2 Morgan 28 USA ... ... 170
3 Josh 15 USA ... ... 140
3 Devin 19 USA ... ... 180
Expected Result(Dataframe1 with new column)
Name Age Country Unrelated Unrelated Weight
1 Josh 15 USA ... ... 140
2 Kyle 18 USA ... ... -
3 Pete 17 USA ... ... -
4 Devin 19 USA ... ... 180
5 Josh 15 Canada ... ... -发布于 2021-10-06 20:22:54
我们可以使用left_join
library(dplyr)
left_join(df1, df2, by=c("Name"="First","Age" = "AgeNum","Country" = "BornPlace")) Name Age Country Weight
1 Josh 15 USA 140
2 Kyle 18 USA NA
3 Pete 17 USA NA
4 Devin 19 USA 180
5 Josh 15 Canada NA发布于 2021-10-06 20:23:21
使用data.table包
merge.data.table(
x = DT1, y = DT2,
by.x = c('Name','Age','Country'),
by.y = c('First','Age','BornPlace'),
all.x = T, all.y = F)https://stackoverflow.com/questions/69471956
复制相似问题