我想弄清楚用户访问时发生了什么 profile.views 。用户由对 uid,state 唯一标识。该数据存储在两个数据帧中。
visits = data.frame(id=2001:2004, uid=c(1001,1002,1001,1001), state=c('CA','CA','CA','MA'), ts=c(51,52,53,54))
profile.views = data.frame(id=3001:3004, uid=c(1001,1003,1002,1001), state=c('CA','CA','CA','CA'), ts=c(51,57,59,59))
> visits
id uid state ts
1 2001 1001 CA 51
2 2002 1002 CA 52
3 2003 1001 CA 53
4 2004 1001 MA 54
> profile.views
id uid state ts
1 3001 1001 CA 51
2 3002 1003 CA 57
3 3003 1002 CA 59
4 3004 1001 CA 59
对于每个 profile.view,我想弄清楚它来自哪个访问。这是通过使用匹配的 uid 和状态的 ts 小于或等于 profile.views 行上的 ts 的最近访问来完成的。
这是我想要的结果(以某种形式):
profile.views[1,] 来自于访问[1,]
profile.views[2,] 不是来自任何访问(这可能是由数据记录错误引起的)
profile.views[3,] 来自于访问[2,]
profile.views[4,] 来自于访问[3,]
有谁知道这样做的好方法?