【问题标题】:Specific Join of two Dataframes两个数据框的特定连接
【发布时间】:2019-02-07 14:41:52
【问题描述】:

我有两个数据框:df1df2

> 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

和,

> df2

     ID    hgt    wt     phys_dt
1 C0004     70   147   6/29/2015
2 C0004     70   157   6/27/2016
3 C0005     67   175   6/27/2016
4 C0005     65   171    7/2/2014
5 C0006     69   160   6/29/2015
6 C0006     64   143    7/2/2014

我想加入df1df2 以产生以下数据框,称之为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$hgtdf2$wt 添加到正确的ID 行。棘手的部分是我想将hgtwt 加入日期(df1$test_dtdf2$phys_dt)最紧密对齐的ID 行。我在想我可以先按ID 对两个数据框进行排序,然后按它们各自的日期然后尝试加入?我不太确定如何解决这个问题。谢谢。

【问题讨论】:

  • 我认为你需要滚动加入
  • 您确定hgtwtC0006 不相反吗?

标签: r dataframe join dplyr


【解决方案1】:

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

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

如果要匹配日期和 ID,您可以尝试:

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

在图书馆(dplyr)

【讨论】:

    猜你喜欢
    • 2018-04-30
    • 2015-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-05
    • 2016-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多