您的位置:首页 > 其它

[置顶] 【R语言 数据处理和可视化】一个手游公司销售额数据分析

2017-12-12 14:33 555 查看
1、主要知识点

1、读取csv(read.csv用法)

2、数据集合并(merge用法)

3、分组求和(aggregate用法)

4、日期格式处理(format(as.Date用法))

5、数据可视化–条形图(ggplot用法)

2、数据集下载

链接:https://pan.baidu.com/s/1hs8IFJ2

密码:si78

3、R语言源代码讲解

rm(list=ls())
gc()

options(scipen = 200)

library(ggplot2)

#读取数据##用户登陆时间
DAU <- read.csv('e:/ID/BSD/dau.csv',header = T,stringsAsFactors=F)[,c(1,3)]
##用户消费时间及消费金额
DPU <- read.csv('e:/ID/BSD/dpu.csv',header = T,stringsAsFactors=F)[,c(1,3,4)]

##用户初次安装游戏时间
INS <- read.csv('e:/ID/BSD/install.csv',header=T,stringsAsFactors=F)[,c(1,3)]

# 然后看看这些数据都有哪些字段

head(DAU,3)

head(DPU,3)

head(INS,3)

# log_date:用户登录时间。
#
# user_id:用户id,所有用户id唯一。
#
# payment:用户再当天消费情况。
#
# install_date:用户初次安装游戏时间。

#数据集合并

##第一次合并
dau.ins <- merge(DAU,INS,by='user_id')
##偷偷观察一下看看第二次合并怎么设置参数
head(dau.ins);

head(DPU)
##第二次合并我在另外一个Script做了几次测试
did <- merge(dau.ins,DPU,by=c('log_date','user_id'),all.x = T)
#将NA值(没有消费)设为0
did$payment[is.na(did$payment)] <- 0
head(did)

#按月处理时间变量

#这里有俩办法,还有一个用substr()+as.number()
did$log_date <- as.numeric(format(as.Date(did$log_date),format='%m'))
did$install_date <- as.numeric(format(as.Date(did$install_date),format='%m'))
head(did)

#按月份整合数据:除了下述方法笔者还尝试了by(),reashape2,split()+apply(),均可实现,有兴趣的话可以试试。
final.data <- aggregate(did,by=list(did$user_id,did$log_date,did$install_date),FUN=sum)[,c(1,2,3,7)]
names(final.data) <- c('user_id','log_date','install_date','payment')

#为用户贴上新老标签
final.data$label <- ifelse(final.data$log_date==final.data$install_date,'新用户消费','老用户消费')
head(final.data)

final.sum <- aggregate(final.data[,2:4],by=list(final.data$log_date,final.data$label),sum)[,c(1,2,5)]
names(final.sum) <- c('月份','收入来源','销售额')
#数据到这里就捣腾完毕了,下面可视化探索使用最后的final开头的两个数据集

#可视化分析
(p <- ggplot(final.sum,aes(x=factor(月份),y=销售额,fill=factor(收入来源,levels = c('新用户消费','老用户消费',order=T))))+
geom_bar(width = 0.6,stat = 'identity')+labs(x='月份',fill='收入来源'))+scale_x_discrete(breaks=c(6,7),labels = c('6月','7月'))


> head(final.data)
user_id log_date install_date payment      label
1       1        6            4       0 老用户消费
2       2        6            4       0 老用户消费
3       3        6            4   14994 老用户消费
4       4        6            4       0 老用户消费
5       6        6            4       0 老用户消费
6       7        6            4       0 老用户消费


> head(final.sum)
月份   收入来源 销售额
1    6 老用户消费 177886
2    7 老用户消费 177886
3    6 新用户消费  49837
4    7 新用户消费  29199




结论:

老用户的消费情况几乎没什么变化,但是明显新用户的消费额明显少了接近一半,因此给的策略建议就是根据实际成本提高活动宣传,让新消费者买买买。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐