一、超市总体销售情况
1.1.数据预处理
读取超市数据并命名数据集 dat,观察数据,并更改原始数据中时间的记录方式:
dat<-read.csv("某超市销售数据.csv")
dat$销售时间<-format(dat$销售时间,scientific=FALSE)
由于售货员姓名对分析不产生影响,删除该列,并重新命名各列:
dat<-dat[,-c(1)]
names(dat)<-c("ID","time","No.","item","price","num","total")
as.factor(dat$item)#将产品名称设置为因子变量
为了分别按照日期和时间段进行分析,把销售时间拆分为两部分,销售日期和销售时间。
date<-substr(dat$time,1,8)
hour<-substr(dat$time,9,10)#文本拆分,按照日期与时间
dat<-data.frame(dat,date=date,hour=hour)#更新数据集
1.2不同产品的销售量及销售额
此处利用tapply函数进行分组计算,分别得到每种产品的销售额及销售量,并进行排序:
cp<-tapply(dat$total,dat$item,sum)#计算每种产品的销售额
cpn<-tapply(dat$num,dat$item,sum)#计算每种产品的销售量
cp<-data.frame(cp)
cpn<-data.frame(cpn)
ocpn<-cpn[order(cpn,decreasing = T),]#对产品销售量进行排序
ocp<-cp[order(cp,decreasing = T),]#对产品销售额进行排序
可以发现,销量较高的产品中,小吃类占大多数。
销售额较高的则主要是香烟,对于烤肠这种成本低,销售额却高的产品,看来是每家超市必进的商品。
1.4对不同时间段超市运营情况的分析
想要从时间角度来对超市运营情况分析,首先要做的就是对数据集按照不同的时间分布来进行合并,此处我们分别按照日期和小时来进行数据的合并。
datecp<-tapply(dat$total,dat$date,sum)
hourcp<-tapply(dat$total,dat$hour,sum)
tapply函数得到的结果是一组向量,并且是带行名的向量,因此需要对所得到数据集进行一个处理方便后续分析。
days<-rownames(datecp)
hour<-rownames(hourcp)
cp<-as.vector(hourcp)
hourcp<-data.frame(hour=