对于数据集test
,我的目标是找出逐个时期有多少唯一用户从一个时期转移到下一个时期。
> test
user_id period
1 1 1
2 5 1
3 1 1
4 3 1
5 4 1
6 2 2
7 3 2
8 2 2
9 3 2
10 1 2
11 5 3
12 5 3
13 2 3
14 1 3
15 4 3
16 5 4
17 5 4
18 5 4
19 4 4
20 3 4
例如,在第一个期间有四个唯一用户(1、3、4 和 5),其中两个在第二个期间处于活跃状态。因此保留率为 0.5。第二期有 3 个独立用户,其中两个在第三期活跃,因此保留率为 0.666,依此类推。如何找到下一时期内活跃的唯一用户百分比?任何建议,将不胜感激。
输出如下:
> output
period retention
1 1 NA
2 2 0.500
3 3 0.666
4 4 0.500
The test
data:
> dput(test)
structure(list(user_id = c(1, 5, 1, 3, 4, 2, 3, 2, 3, 1, 5, 5,
2, 1, 4, 5, 5, 5, 4, 3), period = c(1, 1, 1, 1, 1, 2, 2, 2, 2,
2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4)), .Names = c("user_id", "period"
), row.names = c(NA, -20L), class = "data.frame")