杜宇,EasyCharts团队成员,R语言中文社区专栏作家
他的兴趣是:Excel业务图,R语言数据可视化,地理信息数据可视化。
个人微信官方账号:“数据立方”创始人:数据立方(微信ID: datamofang)。
推荐课程:系统全面,有调性!r语言可视化&商业图表实践课程
相信经常做数据分析的同学都听过队列分析,尤其是互联网运营,用来分析客户留存等场景。以前这种分析大多是借助SQL+Excel来完成的。
最近在尝试学习队列用户持久化分析的时候,发现了国外数据分析爱好者队列用户持久化分析的Python版本完整代码,并认真提供了实践数据。作为一个比Python更熟练的菜鸟分析师,他自然想到了如何先把这段代码翻译成R版本。
http://www . gregrereda . com/2015/08/23/queue-analysis-with-python/
最后,功夫一整天都在忙着用R语言代码还原《队列分析》的R语言版。在这里和大家分享一下。代码不好,请见谅。只是个演示,还没打包。
库(' xlsx ')库(' ggplot2 ')库(' dplyr ')库(' magrittr ')库(' tidyr ')库(' reshape2 ')
1.数据导入:
setwd(" D:/R/File/")df & lt;- read.xlsx('relay-foods.xlsx ',sheetName = 'Purchase Data ')
2.数据清理:
保留分析中使用的字段只有购买日期、用户id和其他信息。分析月留存,需要将日期标准化成月表,同时按照客户ID分组,计算出用户的首次购买日期。代码如下:
2.1创建购买月份字段
df $ order period = format(df $ order date,' % y-%m') #购买日期
2.2创建用户的首次购买字段
CohortGroup = df %>。% group _ by(UserID)% & gt;% summary(cohort group = min(order date))#计算用户的首次购买日期cohortgroup $ cohortgroup
2.3分组计算用户总数、订单总数、支付总额(根据首次购买日期、购买日期)(用户ID需重复)
合唱团<。- df %>。% group_by(CohortGroup,order period)% gt;% summary(UserId = n _ distinct(UserId),OrderId = n_distinct(OrderId),total charges = sum(total charges))% & gt;%重命名(合计用户=用户标识,合计订单=订单标识)
2.4根据用户标识分组,并根据购买日期和月份添加连续标签
合唱团<。-合唱% >;%排列(合作组,订单周期)% >;% group _ by(CohortGrouP)% & gt;% mutate(CohortPeriod = row _ number())
3.计算当月购买的新用户数量
群组大小<。-合唱% >;% filter(CohortPeriod = = 1)% & gt;% select(合作组、订购期、总用户)user _ retention & lt-合唱% >;%选择(合作组、合作周期、总用户)% & gt百分比分布(cow组,总用户数)#将长表转换为宽表#将特定用户转换为基准月user _ retention的比率[,-1]
宽桌子到长桌子
user_retention1 <。- user_retention %>;% select(1:5) % >% melt(id . vars = ' CoortPeriod ',variable.name = ' CohortGroup ',value.name = 'TotalUsers ')
4.保留曲线
ggplot(user_retention1,AES(Cohortperium,TotalUSers))+geom _ line(AES(group = Cohortpgroup,color = Cohortpgroup))+scale _ x _ continuous(breaks = 1:15)+scale _ colour _ brewer(type = ' div ')
最终保留热图的数据源:
user _ retentionT & lt- t(user_retention) % >% .[2:nrow(。),]% & gt;% as . data . frame user _ retention $ COORTERperiod & lt;-row . names(user _ retention)row . names(user _ retention)& lt;-NullUser _ retention & lt;-user _ retention ont[,c(16,1:15)]user _ retention t1 & lt;-user _ retention % & gt;% melt(id . vars = ' CoortPeriod ',variable.name = ' CohortGroup ',value.name = 'TotalUsers ')
5.保留分析的热图表:
library(" Cairo ")library(" show text ")font _ add(" my font "," msyh . TTC ")CairoPNG(" C:/Users/LEIGU/Desktop/emoji 1 . png "/>
生存分析是互联网数据分析应用中经常用到的分析工具。本节中的R代码源自文章开头的Python代码的思想。你可以比较两者的优劣,作为以后分析的参考资料。
写在最后:
如果你想深入学习ggplot2,但是苦于平时的学习和工作繁忙,没有时间去研究浩如烟海的源文档,那么没关系。最近这个小系列花了很大力气仔细整理了一些自己的经验,学习ggplot2过程中的经验和模仿入坑指南。现已成功推出R语言ggplot2可视化视频课程,由天山智能独家发行。希望这个课程能给你带来R语言数据的可视化学习。
最后八小时,唯一优惠!
点击阅读全文,立即加入课程!
不要让对手超过你!
1.《cohort R语言数据分析笔记——Cohort 存留分析》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《cohort R语言数据分析笔记——Cohort 存留分析》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/shehui/1280185.html