项目03_淘宝用户分析

#########第一步,源数据 start #########
#大数据环境准备
gc()
memory.size(T)   #查看已分配内存,6972 
memory.size(F)   #查看已使用内存,6852.55 
memory.limit()   #查看内存上限,返回8075
memory.limit(size=20000) #扩大内存上限

#df_tb <- read.table("shuju.txt",header=TRUE,sep=",",encoding = "UTF-8")
#始终报错:列的数目比列的名字要多
#300万数据的记事本打开,很慢;
#Excel中单张表格只能存放100百万行的数据,也没办法复制过去,再复制回来
#只拷贝200行数据时,读取成功

#大文件快速读取
library("data.table")
df_tb <- fread(input = "shuju.txt",stringsAsFactors = FALSE,encoding="UTF-8")
df_tb <- as.data.frame(df_tb)
str(df_tb) #3182261 obs. of  9 variables
max(df_tb$Id) #返回3182174
length(unique(df_tb$Id)) #返回3182174,3182174<3182261,表明编号存在重复值

#time列,调整成日期类型
df_tb$time <- as.Date(df_tb$time)
#基于日期排序
order(unique(df_tb$time)) #返回排序后元素对应的位置
rank(unique(df_tb$time))  #返回对应元素的排名
sort(unique(df_tb$time))  #返回排序后的向量
length(sort(unique(df_tb$time))) #共计32天

#behavior_type:用户行为类型
#点击1、收藏2、加购物车3、购买4表示
df_tb$behavior_type <- as.factor(df_tb$behavior_type)
#########第一步,源数据 stop#########

#########第二步,缺失值探索 start######
#列表显示缺失值
library("lattice")
library("mice")
md.pattern(df_tb) #矩阵查阅法,0行返回

df_tb[!complete.cases(df_tb),] #非空行返回,0行返回
#########第二步,缺失值探索 stop######

##########第三步,模型###############################

#########3.1 AARRR漏斗模型分析用户行为###########

#3.1.1 常规指标分析
#基于behavior_type,生成频数表
b_type <- table(df_tb$behavior_type)
b_type <- as.data.frame(b_type)
#基于数据框,读取Var1列的频数值读取Freq列的统计值
Total_visit <- b_type$Freq[b_type$Var1==1]
Total_favorit <- b_type$Freq[b_type$Var1==2]
Total_car  <-  b_type$Freq[b_type$Var1==3]
Total_pay  <-  b_type$Freq[b_type$Var1==4]

#整体购物情况
#总访问量PV (Page View)即页面浏览量或点击量,用户每次刷新即被计算一次
pv <- Total_visit   #对应300W

#日均访问量
dv <- round(pv/length(sort(unique(df_tb$time))))

#独立用户总数uv,
#即Unique Visitor,访问您网站的一台电脑客户端为一个访客。
#00:00-24:00内相同的客户端只被计算一次
uv <- length(unique(df_tb$user_id)) #对应315w

#有购买行为的用户数量
pay_uv <- length(unique(df_tb$user_id[df_tb$behavior_type==4])) #对应3w

#用户的购物情况
#对应各user_id的访问次数,收藏次数,加入购物车次数,以及支付次数
user_df_long <- as.data.frame(table(df_tb$user_id,df_tb$behavior_type)) #二维列频表,变成长表格式
library("reshape2") #支持长表,宽表之间的数据格式转换
user_df_wide <- dcast(user_df_long,Var1~Var2)#类比于数据透视表,Var1对应行变量,Var2对应列变量
colnames(user_df_wide) <- c("user_id","访问次数","收藏次数","购物车次数","支付次数")
#借助现有列,创建新列
#不能用sum,它会将每一个整列值总计求和然后再加上其他整列求和

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值