R 用最接近的日期和精确的字符串连接两个数据帧

R 用最接近的日期和精确的字符串连接两个数据帧,r,left-join,data.table,R,Left Join,Data.table,因此,两个数据框如下所示: df1 df2 这里,两个数据帧的键应该是Route和Date。 我希望数据帧在精确的路线和最近的日期上连接 我尝试了data.table滚动联接,但它为两个键提供了最接近的匹配。{data.table}的滚动联接应该可以工作。您必须确保日期是两个表中的最后一个键(即,您使用setkey(df1,Route,Date))对它们进行键控),并且日期的格式正确。在此之后,您应该能够使用df2[df1,roll='nearest']进行滚动连接到最近的日期,这还取决于

因此,两个数据框如下所示:

df1


df2


这里,两个数据帧的键应该是Route和Date。 我希望数据帧在精确的路线和最近的日期上连接



我尝试了data.table滚动联接,但它为两个键提供了最接近的匹配。

{data.table}
的滚动联接应该可以工作。您必须确保日期是两个表中的最后一个键(即,您使用
setkey(df1,Route,Date)
)对它们进行键控),并且日期的格式正确。在此之后,您应该能够使用
df2[df1,roll='nearest']
进行滚动连接到最近的日期,这还取决于您希望保留的日期。最大值,最小值,来自df1或df2的值。谢谢你的回答。这很有帮助。但是还有一个障碍——如果我们在df2中有两行可以连接到df1中的一个(日期,路线)键,在这种情况下,我想求和值2,然后将其与df1连接。听起来很复杂。这可能吗?再次感谢help@Pratik409您可以自行回答问题,不将其打开或删除。
{data.table}
的滚动联接应该可以工作。您必须确保日期是两个表中的最后一个键(即,您使用
setkey(df1,Route,Date)
)对它们进行键控),并且日期的格式正确。在此之后,您应该能够使用
df2[df1,roll='nearest']
进行滚动连接到最近的日期,这还取决于您希望保留的日期。最大值,最小值,来自df1或df2的值。谢谢你的回答。这很有帮助。但是还有一个障碍——如果我们在df2中有两行可以连接到df1中的一个(日期,路线)键,在这种情况下,我想求和值2,然后将其与df1连接。听起来很复杂。这可能吗?再次感谢help@Pratik409您可以自行回答问题,不必将其打开或删除。
Date      |    Route   |   Value1

2014-01-01 |    ABE:XXY |   122.32
Date | Route | Value2

2014-01-07 | ABE:XXY | 10,231