【发布时间】:2014-03-18 15:28:19
【问题描述】:
有一个交易数据有4个字段:user_id、brand_id、type、time
bd = as.Date("2012-04-01")
SampleDT <- data.table(user_id = rep(c("A","B"), each = 5), brand_id = rep(1:5, c(4,1,3,1,1)), type = c(0,0,2,3,3,0,3,3,0,0), time = c(bd,bd+1,bd+1,bd+2,bd+2, bd+ -1:1, bd+2, bd+2))
每次观察都会记录用户在特定时间对特定产品的行为。
在 Type 字段中,有 3 个不同的值:0、2、3
0 : click
2: adding to shopping cart
3: buy
首先,我计算了每个用户购买了哪些产品。
setkey(SampleDT, user_id, brand_id)
SampleDT[type ==3, .N, by = key(SampleDT)]
如下:
user_id brand_id N 1:一个 1 1 2:A 2 1 3:乙 3 2接下来,
我想计算每个type = 3 给定的user_id,固定的brand_id,有多少(类型=0 或类型= 2)?给定用户,固定产品,购买前点击和加入购物车的统计数据是多少?
结果中有 5 个字段。 user_id,brand_id,N(表示一个用户第N次购买某产品),Click.N(购买前多少type=0),AddingtoCart.N(购买前多少type=2)
这就是我想要的:
user_id brand_id N Click.N 添加到购物车.N 1:A 1 1 2 1 2:A 2 1 0 0 3:B 3 1 1 0 4:B 3 2 0 0setkey(SampleDT, user_id, brand_id, time)
SampleDT[, .I[type==3], by = key(SampleDT)]
我想先找到行位置,但我不知道如何继续。
能否给点建议?
非常感谢!
【问题讨论】:
标签: r time-series data.table