0
我有一個表格,它捕捉網站用戶的交互。列'id'是用戶的唯一標識符。 '時間'是目前與最後一次互動的時間差。 'conv'代表用戶轉換或不轉換的步驟(1,0)。用戶可能會轉換幾次或根本不轉換。我需要標記會話計數器,其邏輯如下:爲時差設置會話計數器
- 當id相同且diff小於10時,計數器應給出前面的計數器值。
- 當id相同且diff大於10時,計數器應加1。
當id更改計數器應重置爲1.同樣在用戶轉換(即conv = 1)並且'時間'大於10時,計數器應重置爲1。 僞數據幀應該是這樣的:
df <- data.frame(id = c(1,1,1,1,1,1,1,1,1,1,1,2,2,2), conv = c(0,0,0,0,1,0,0,0,0,1,0,0,0,0), time= c(0,3,15,18,9,5,17,7,15,5,5,45,40,5)) id |conv |time ---- 1 | 0 | 0 1 | 0 | 3 1 | 0 | 15 1 | 0 | 18 1 | 1 | 9 1 | 0 | 5 1 | 0 | 17 1 | 0 | 7 1 | 0 | 15 1 | 1 | 5 1 | 0 | 5 2 | 0 | 0 2 | 0 | 40 2 | 0 | 5
決賽桌應該是這樣的:
id |conv |time | counter ---- 1 | 0 | 0 | 1 1 | 0 | 3 | 1 1 | 0 | 15 | 2 1 | 0 | 18 | 3 1 | 1 | 9 | 3 1 | 0 | 5 | 3 1 | 0 | 17 | 1 1 | 0 | 7 | 1 1 | 0 | 15 | 2 1 | 1 | 5 | 2 1 | 0 | 5 | 2 2 | 0 | 0 | 1 2 | 0 | 40 | 2 2 | 0 | 5 | 2