Хранить строки до даты, используя идентификаторы - PullRequest
1 голос
/ 28 января 2020

Наличие двух фреймов данных с такими датами:

df1 <- data.frame(id = c(1,1,1,1,2,2), date=c("2019/12/11 20:30:12", "2019/12/12 09:20:12", "2019/12/12 11:30:40", "2019/12/13 20:12:34", "2019/12/11 12:20:12", "2019/12/11 19:20:12"), values = c(23,4,1,3,4,2))
df2 <- data.frame(id = c(1,2), date = c("2019/12/12 09:20:12", "2019/12/11 19:20:12"))

Как можно использовать значения дат второго фрейма данных, чтобы сохранить строки до этой даты в первом фрейме данных? Пример ожидаемого результата:

data.frame(id = c(1,1,2,2), date=c("2019/12/11 20:30:12", "2019/12/12 09:20:12", "2019/12/11 12:20:12, "2019/12/11 19:20:12"), values = c(23,4,4,2))

1 Ответ

1 голос
/ 28 января 2020

Мы можем сделать left_join, а затем filter

library(dplyr)
library(lubridate)
left_join(df1, df2, by = 'id') %>%
         filter(ymd_hms(date.x) <= ymd_hms(date.y)) %>%
         select(id, date = date.x, values)
#id                date values
#1  1 2019/12/11 20:30:12     23
#2  1 2019/12/12 09:20:12      4
#3  2 2019/12/11 12:20:12      4
#4  2 2019/12/11 19:20:12      2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...