【发布时间】:2021-10-26 22:25:37
【问题描述】:
两个数据集根据它们的 id 和日期分开的条件保持连接
A <- data.frame(id = c(1,2,3),
application_date = as.Date(c("2010-05-08", "2012-08-08", "2013-06-23")))
B <- data.frame(id = c(1,1,2,2,3,3),
date = as.Date(c("2009-01-02", "2009-12-24", "2011-11-11", "2012-05-20", "2013-03-21", "2013-06-05")),
value1 = c(2500, 3000, 1200, 1900, 5500, 4500),
value2 = c(2500, 3000, 1200, 1900, 5500, 4500),
value3 = c(2500, 3000, 1200, 1900, 5500, 4500))
如果对于同一个id,日期差小于等于6个月,则按最近日期加入,跟随
library(data.table)
setDT(B)[, application_date := date]
B[A, on = .(customer, date = application_date), roll = 'nearest']
如果对于相同的id,日期差大于6个月,则用NA填充所有连接的值(value1,value2,value3)。
那么如何构造left_join并结合ifelse条件。
【问题讨论】:
标签: r if-statement left-join