У меня есть два набора данных, которые я хотел бы объединить необычным образом.Один набор данных - это мой основной набор, который содержит идентификатор и дату и время, относящиеся к этому ID
.ID
может появляться несколько раз с разными датами, прикрепленными к нему:
> head(Master_Data)
# A tibble: 5 x 2
ID Date
<chr> <dttm>
1 a 2018-03-31 00:00:00
2 a 2018-02-28 00:00:00
3 b 2018-06-07 00:00:00
4 c 2018-01-31 00:00:00
5 b 2018-02-09 00:00:00
Другой набор данных имеет тот же ID
, другую дату и оценку, связанную с этим ID
и датой.Идентификаторы также могут отображаться несколько раз в этом наборе данных, а также с разными датами и оценками:
> head(Score_Data)
# A tibble: 6 x 3
ID Date Score
<chr> <dttm> <dbl>
1 a 2018-01-19 00:00:00 3
2 a 2018-01-01 00:00:00 5
3 a 2018-03-05 00:00:00 7
4 b 2018-01-31 00:00:00 1
5 b 2018-08-09 00:00:00 5
6 c 2018-01-17 00:00:00 10
Я хотел бы добавить дополнительный столбец к Master_Data
, который дает среднее значение для оценкичто ID
в Score_Data
df.Сложность заключается в том, что для каждой строки в Master_Data
я хочу включить в среднее значение только баллы, если переменная даты в Score_Data
раньше, чем переменная даты для данной строки в Master_Data
Пример:
Для строки 1 в Master_Data
я бы хотел, чтобы новый столбец возвращал значение (3 + 5 + 7) / 3 = 5. Однако для строки 2 я хотел бы видеть только(3 + 5) / 2 = 4, так как строка 3 в Score_Data
имеет дату после 2/28
Мысли о том, что будет лучшим подходом для получения этого нового столбца в Master_Data
?