R 在两个数据帧中获得订单和响应的最快时差

R 在两个数据帧中获得订单和响应的最快时差,r,dataframe,R,Dataframe,我有2个数据帧,如图所示。第一个(df1)具有订单ID、用户ID和用户订购某物的时间。在df2中,我有订单ID和订单响应的时间(timeResponse)。我需要的是一个数据帧,它接受这两个数据帧并输出每个订单ID,如果它被响应,订单时间和最快订单响应之间的时间差。因此,在第一个订单(订单ID 1)中,有3个响应,第一个是在下午2点-因此这将是一个2小时的响应 我正在寻找一种在R中实现这一点的方法 df1 <- data.frame( orderID = c(1,2,3,4,5),

我有2个数据帧,如图所示。第一个(df1)具有订单ID、用户ID和用户订购某物的时间。在df2中,我有订单ID和订单响应的时间(timeResponse)。我需要的是一个数据帧,它接受这两个数据帧并输出每个订单ID,如果它被响应,订单时间和最快订单响应之间的时间差。因此,在第一个订单(订单ID 1)中,有3个响应,第一个是在下午2点-因此这将是一个2小时的响应

我正在寻找一种在R中实现这一点的方法

df1 <- data.frame(
    orderID = c(1,2,3,4,5),
    userID = c(101, 102, 103, 104, 105),
    timeOrdered = c("1/1/2020  12:00:00 PM", "1/2/20 1:00PM", "1/3/20 12:00 AM", "1/4/20  12:00 AM", "1/5/20 12:00 AM"))

df2 <- data.frame(responseID = c(1,2,3,4,5),
    orderID = c(101, 102, 103, 104, 105),
    timeResponse = c("1/1/20 2:00 PM", "1/1/20 3:00 PM", "1/1/20 4:00 PM", "1/4/20 2:00 PM", "1/5/20 2:00 PM"))

df1见,谢谢……实际上,第二个是。是的。我在评论中修正了它。无论如何,这个加入对我来说很有效。很高兴听到这个消息-请随意提供您自己的解决方案作为答案。以下是我的回答。合并(x=df1,y=df2,by=“orderID”,all.x=TRUE)%%>%变异(diff=difftime(timeResponse,timeOrdered))%%>%选择(orderID,diff)%%>%分组依据(orderID)%%>%切片(which.min(diff))