使用 id 保留日期之前的行

  • 本文关键字:日期 id 保留 使用 r
  • 更新时间 :
  • 英文 :


有两个数据帧,日期如下:

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))

我们可以做一个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

最新更新