df
是显示不同客户的访问和购买时间的数据框。计算采购之间的时差(日期时间变量与NAs)
id<-c(1,1,1,1,1,1,2,2,2,2,2)
visit<-rep("yes",11)
purchase<-c("2015-04-27 13:57:06","2015-04-27 13:59:19","2015-04-27 14:03:35","NA","NA","2015-04-27 16:59:42","2015-05-18 17:01:09","2015-05-18 17:03:40","2015-05-18 17:04:00","NA","NA")
df<-data.frame(id,visit,purchase)
当purchase
变量是NA
这意味着客户访问了网站,但没有进行购买。
现在我需要创建一个名为time.gap
来计算每个客户如下购买之间的时间差距的新变量:
id visit purchase time.gap
1 1 yes 2015-04-27 13:57:06 NA
2 1 yes 2015-04-27 13:59:19 133
3 1 yes 2015-04-27 14:03:35 256
4 1 yes NA NA
5 1 yes NA NA
6 1 yes 2015-04-27 16:59:42 10567
7 2 yes 2015-05-18 17:01:09 NA
8 2 yes 2015-05-18 17:03:40 151
9 2 yes 2015-05-18 17:04:00 20
10 2 yes NA NA
11 2 yes NA NA
会感谢你的帮助
您的代码完全适用于此示例,但是当我在我的工作数据上运行它们时,它会返回以下错误:不兼容的大小(16737151),期望47(组大小)或1.任何想法可能是什么问题? – AliCivil
我尝试了不同的场景,我无法重现错误。您将不得不排查数据。尝试通过id s < - split(df,df $ id)分割数据'并在每个id test' - list()上运行代码。 for(i in 1:length(s))test [[i]] < - **我们上面的代码**'。当出现错误消息时,您将知道哪个ID创建了它,因为'test'的最后一个条目将是最后一个成功的轮流。 –
btw当你测试它时,用's'代替代码中的所有'df'。 –