R 两个数据帧的特定连接

R 两个数据帧的特定连接,r,dataframe,join,dplyr,R,Dataframe,Join,Dplyr,我有两个数据帧:df1和df2: > df1 ID Gender age cd evnt scr test_dt 1 C0004 MALE 22 1 1 82 7/3/2014 2 C0004 MALE 22 1 2 76 7/3/2014 3 C0005 MALE 22

我有两个数据帧:
df1
df2

> df1

     ID  Gender      age      cd       evnt     scr     test_dt
1 C0004    MALE       22       1          1      82    7/3/2014
2 C0004    MALE       22       1          2      76    7/3/2014
3 C0005    MALE       22       1          3    1514    7/3/2014
4 C0005    MALE       23       2          1      81   11/3/2014
5 C0006    MALE       23       2          2      75   11/3/2014
6 C0006    MALE       23       2          3     878   11/3/2014
以及

我想以产生以下数据帧的方式连接
df1
df2
,称之为
df3

> df3

     ID   Gender      age      cd       evnt     scr     hgt     wt
1 C0004     MALE       22       1          1      82      70    147
2 C0004     MALE       22       1          2      76      70    157
3 C0005     MALE       22       1          3    1514      67    175
4 C0005     MALE       23       2          1      81      65    171
5 C0006     MALE       23       2          2      75      69    160
6 C0006     MALE       23       2          3     878      64    143

我正在尝试将
df2$hgt
df2$wt
添加到正确的
ID
行中。棘手的部分是,我想将
hgt
wt
加入到日期(
df1$test_dt
df2$phys_dt
)最接近的
ID
行。我想我可以先按
ID
对这两个数据帧进行排序,然后按它们各自的日期进行排序,然后尝试合并?我不太清楚该如何处理这个问题。谢谢。

如果您想仅匹配df1$ID和df2$ID,请执行以下操作:

df3 <- left_join(df1, df2, by = c("ID" = "ID"))  

df3如果您只想对df1$ID和df2$ID进行模糊匹配,则应执行以下操作:

df3 <- left_join(df1, df2, by = c("ID" = "ID"))  

df3我想你需要一个滚动接头你确定
hgt
wt
不是
c006
的对立面吗?我想你需要一个滚动接头你确定
hgt
wt
不是
c006
的对立面吗?
df3 <- left_join(df1, df2, by = c("ID" = "ID", "test_dt" = "phys_dt"))