按键列合并两个data.frames

按键列合并两个data.frames,r,dataframe,subset,R,Dataframe,Subset,我有两个数据帧。在第一个中,我有一个KEY/ID列和两个变量: KEY V1 V2 1 10 2 2 20 4 3 30 6 4 40 8 5 50 10 在第二个数据帧中,我有一个KEY/ID列和第三个变量 KEY V3 1 5 2 10 3 20 我想通过根据键列匹配第一个数据帧的行来提取第二个数据帧中的行。我还想将V3列添加到最终数据集 KEY V1 V2 V3 1 10 2 5 2 20 4 10 3

我有两个数据帧。在第一个中,我有一个KEY/ID列和两个变量:

KEY V1 V2
1   10  2
2   20  4
3   30  6   
4   40  8
5   50 10
在第二个数据帧中,我有一个KEY/ID列和第三个变量

KEY V3 
1    5  
2   10  
3   20  
我想通过根据键列匹配第一个数据帧的行来提取第二个数据帧中的行。我还想将V3列添加到最终数据集

KEY V1 V2 V3 
1   10  2  5
2   20  4 10 
3   30  6 20   
这是我使用子集和合并函数的尝试

subset(data1, data1$KEY == data2$KEY) 
merge(data1, data2, by.x = "KEY", by.y = "KEY")
他们中没有一个人完成这项任务


任何暗示都会被告知。谢谢大家!

合并(data1,data2,by=“KEY”)
应该可以

如果您想要的是一个内部联接,那么您的尝试就应该这样做。如果未使用
class(data1$Key)
检查两个表中键列的格式

除了这些和Christian建议的合并之外,您还可以使用-

library(plyr)
join(data1, data2, by="KEY", type="inner")


您可以使用一个
dplyr
*\u join
。给定样本数据,以下两项将给出相同的结果:

library(dplyr)
df_merged <- inner_join(data1, data2, by = 'KEY')
df_merged <- right_join(data1, data2, by = 'KEY')
库(dplyr)

谢谢你!我不熟悉plyr的包装
library(dplyr)
df_merged <- inner_join(data1, data2, by = 'KEY')
df_merged <- right_join(data1, data2, by = 'KEY')