R做基本的用户行为分析
1. 数据源保密
2.了解数据基本描述为筛选数据做铺垫
action<-read.csv("C:\\Users\\Administrator\\Desktop\\20150804\\TU.csv")
rc<-c(nrow(action),ncol(action))#查看数据集的行列
rc#这是数据集的行和列
summary(action) #查看数据表的描述属性
从数据描述可以看到:
STUDENT_ID和USER_LIMIT为全缺失可以认为是无效列,EXP_CREDIT_TYPE、 SOURCE_MODULE 和SOURCE_MODULE列中只有一行存在数据,用来分析没有代表性。对于ID和USER_ID重复重复项,可以选择一列即可。
3.数据清洗
action1<-action[-c(2,3,7,10,13)]#剔除以上无效信息
summary(action1)#描述该数据表
4.各业务数据的基本分析
c1<-nrow(action1[complete.cases(action1$CET_TYPE),])#显示该列不为空值的行数
c2<-table(action1$CET_TYPE)#显示频数
tb1<-c2/c1#查看频率
plot(main="笔头网测试人数图",tb1,xlab ="考试类别",ylab ="考试人数占比",col="red")#画出频率散点图
上图中个数字含义:1,四级 2,六级 3,四级模拟 5,考研1 6,考研2
从图中我们可以看到,大部分用户来到网站做四级测试和考研1的测试人数较多。
table(action1$STATUS)#查看STATUS列数据发现大部分的数均为默认值
#因此可以将其排除掉
action2<-action1[-c(4)]
#summary(action2)#描述该数据表
发现HOST 和 ACTION惊人相似
table(action2$HOST)
table(action2$ACTION)#描述该数据表
相对来说,HOST和ACTION列的值是大体相同,故只取一列,host编码较为规则,故选host列作为分析对象。将ACTION列删除
action3<-action2[-c(5)]
#summary(action$CRT_DATE)#描述该数据
CRT_DATE<-as.Date(action$CRT_DATE,'%Y/%m/%d %H:%M')#将CRT_DATE列转换为%Y/%m/%d格式
CRT_DATE
m<-table(CRT_DATE)
plot(m,col="red",xlab ="考试日期",ylab ="考试人数",main="笔头网测试日期图")
通过修改列表的日期格式,我们可看到测试高峰大概是什么时间段。
CRT_DATE1<-as.Date(action$CRT_DATE,'%Y/%m/%d %H:%M')#as.Date()默认格式是year-month-day
CRT_DATE1
CRT_DATE2<-months(CRT_DATE)
n1<-table(CRT_DATE2)
m1=sort(n1)
barplot(m1,col="red",xlab ="考试月份",ylab ="考试人数",main="笔头网测试日期图")#参加考试月份图
summary(action$HOST)
host1<-table(action$HOST)
sort(host1)
plot(host1)