我有两个数据框:
第一个包含id,日期和值
df1=data.frame(id=c(1,2,3,3,4,4,5,5,5,5,5,6,6,6,6),
date=c(2010,2011,2010,2011,2009,2010,2010,2011,2012,2013,2014,2007,2008,2009,2010),
value=c(1,2,4,1000,150,35465,16545670,1,5,654684,254561,45812,9183,89714,88815))
id date value
1 1 2010 1
2 2 2011 2
3 3 2010 4
4 3 2011 1000
5 4 2009 150
6 4 2010 35465
7 5 2010 16545670
8 5 2011 1
9 5 2012 5
10 5 2013 654684
11 5 2014 254561
12 6 2007 45812
13 6 2008 9183
14 6 2009 89714
15 6 2010 88815
第二个包含ID,日期
df2=data.frame(id=c(1,2,3,4,4,5,5,5,6,6,6),date=c(2009,2011,2011,2008,2009,2010,2011,2012,2007,2008,2010))
id date
1 1 2009
2 2 2011
3 3 2011
4 4 2008
5 4 2009
6 5 2010
7 5 2011
8 5 2012
9 6 2007
10 6 2008
11 6 2010
我想用df1中date和id的匹配值填充df2
df3=data.frame(id=c(1,2,3,4,4,5,5,5,6,6,6),
date=c(2009,2011,2011,2008,2009,2010,2011,2012,2007,2008,2010),
New_col=c(NA,2,1000,NA,150,16545670,1,5,45812,9183,88815))
id date New_col
1 1 2009 NA
2 2 2011 2
3 3 2011 1000
4 4 2008 NA
5 4 2009 150
6 5 2010 16545670
7 5 2011 1
8 5 2012 5
9 6 2007 45812
10 6 2008 9183
11 6 2010 88815
我尝试了inner_join,left_join都不起作用,因为它们复制了我的行。 以下代码可以完成我的小样本工作,但不适用于我的大数据集:它将复制行。
df3<-inner_join(df2,df3,by=c("id","date"))