计算申请的保留率?

时间:2018-02-08 15:57:59

标签: sql r sqlite ggplot2 sqldf

尝试一些营销分析。 使用R和SQL。

此数据集:

                           user_id install_date app_version
1 000a0efdaf94f2a5a09ab0d03f92f5bf   2014-12-25          v1
2 000a0efdaf94f2a5a09ab0d03f92f5bf   2014-12-25          v1
3 000a0efdaf94f2a5a09ab0d03f92f5bf   2014-12-25          v1
4 000a0efdaf94f2a5a09ab0d03f92f5bf   2014-12-25          v1
5 000a0efdaf94f2a5a09ab0d03f92f5bf   2014-12-25          v1
6 002a9119a4b3dfb05e0159eee40576b6   2015-12-29          v2
                   user_session_id     event_timestamp   app time_seconds
1 f3501a97f8caae8e93764ff7a0a75a76 2015-06-20 10:59:22  draw          682
2 d1fdd0d46f2aba7d216c3e1bfeabf0d8 2015-05-04 18:06:54 build         1469
3 b6b9813985db55a4ccd08f9bc8cd6b4e 2016-01-31 19:27:12 build          261
4 ce644b02c1d0ab9589ccfa5031a40c98 2016-01-31 18:44:01  draw          195
5 7692f450607a0a518d564c0a1a15b805 2015-06-18 15:39:50  draw          220
6 4403b5bc0b3641939dc17d3694403773 2016-03-17 21:45:12 build          644

link for the dataset

我想创建一个如下图: enter image description here

但是每个版本都会展示它(只关注这个图的版本部分 - 就像上面的图片一样,但是每个版本有一次如下图所示):

enter image description here

基本上,显示每个版本的保留和流失百分比。 这就是我到目前为止所做的:

ee=sqldf("select user_id, count(user_id)as n ,strftime('%Y-%m', event_timestamp) as dt ,app_version 
from w 
group by user_id ,strftime('%Y-%m', event_timestamp),app_version 
having count(*)>1 order by n desc")

ee

                              user_id   n      dt app_version
1    fab9612cea12e2fcefab8080afa10553 238 2015-11          v2   
2    fab9612cea12e2fcefab8080afa10553 204 2015-12          v2
3    121d81e4b067e72951e76b7ed8858f4e 173 2016-01          v2
4    121d81e4b067e72951e76b7ed8858f4e 169 2016-02          v2
5    fab9612cea12e2fcefab8080afa10553  98 2015-10          v2

以上显示了不止一次使用该应用的唯一用户。因此,这些是保留率分析所指的人口。 我遇到的困难是通过event_timestamp列中的事件对每个user_id进行总结,以找到保留/流失结果,就像我提到的第一张图片一样。

1 个答案:

答案 0 :(得分:1)

我认为你的问题不是很清楚,我也不认为你确切知道你想要做什么。您说您尝试使用R来计算客户流失和保留,但您没有提供实际的R代码,只提供了SQL个您在{ {1}}环境。

如果您想知道R一步完成所有这一切,您需要提出一个不同的,更好的问题。但是,鉴于您提供了SQL数据文件,我忽略了您问题的.csv部分并提供了SQL解决方案,包括数据处理。

R

enter image description here