计算R中的购买行程长度

我目前卡在R中有一个非常具体的问题:我有一个大约的数据集. 250万行,显示有关购买行程的基于事件的数据.格式如下(为简单起见,我排除了大多数人口统计数据和一些其他变量):

   UserID   PurchaseID       Time of Contact       Purchase   Age   
     1          1          2015-08-07 19:16:59        0       35
     1          1          2015-08-07 21:17:32        0       35
     1          1          2015-08-07 22:42:51        0       35
     1          1          2015-08-07 23:06:13        0       35
     1          2          2016-05-26 11:01:16        1       35
     1          2          2016-06-02 19:57:25        1       35
     1          2          2016-06-15 15:48:20        1       35
     1          2          2016-06-21 08:39:44        1       35
     2          3          2015-11-14 11:32:10        0       51
     2          3          2015-11-14 11:32:20        0       51
     2          3          2015-11-14 11:33:50        0       51

我想分析每个单独旅程的联系人之间的平均时间如何影响购买概率.因此,我想计算每个客户旅程的总长度(例如,购买ID 1的开始时间直到PurchaseID 1的结束时间).之后我想聚合数据,看起来如下:

   UserID   PurchaseID    Customer journey length  Purchase   Age   
     1          1                 03:49:14            0       35
     1          2                621:38:28            1       35
     2          3                 00:01:40            0       51

老实说,我不知道从哪里开始,所以我希望你能帮助我!非常感谢!

最佳答案 这应该做的工作(使用非常小的样本,请测试这个):

library(dplyr)
library(lubridate)

df <- data.frame(userID=c(1,1), 
           PurchaseID=c(1,1), 
           Contactime= c(ymd_hms("2015-08-07 19:16:59"), ymd_hms("2015-08-07 21:16:59")), 
           Purchase=c(0,0), 
           Age=c(35, 35))


timesummary<- df %>% 
  group_by( userID,PurchaseID, Purchase, Age) %>% 
  summarise(journeylength= as.numeric(difftime(max(Contactime),min(Contactime), units="secs"))) 

请注意,我已经以秒的形式给出了行程长度,这可以改变.

点赞