Конкретное объединение двух Dataframes - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть два фрейма данных: 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

и,

> 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

Я хочу объединить 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 со строкой ID, даты которой (df1$test_dt и df2$phys_dt) наиболее точно совпадают.Я думал, что мог бы сначала отсортировать два фрейма данных по ID, затем по их соответствующим датам, а затем попробовать присоединиться?Я не совсем уверен, как подойти к этому.Спасибо.

1 Ответ

0 голосов
/ 07 февраля 2019

Если вы хотите убрать только совпадение идентификатора df1 $ и идентификатора df2 $, это должно сделать следующее:

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

, если должна совпадать дата и идентификатор, вы можете попробовать:

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

находится в библиотеке (dplyr)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...