朝阳医院销售趋势数据分析

朝阳医院销售趋势数据分析

一、分析目的

根据朝阳医院2016年销售数据.xlsx分析月均消费次数,月均消费金额,客单价,消费趋势。

朝阳医院2016年销售数据.xlsx部分内容如下:

朝阳医院销售趋势数据分析_第1张图片

读入R语言:

> head(x)
           购药时间    社保卡号 商品编码   商品名称
1 2016-01-01 星期五     1616528   236701 三九感冒灵
2 2016-01-02 星期六     1616528   236701 三九感冒灵
3 2016-01-06 星期三 10070343428   236701 三九感冒灵
4 2016-01-11 星期一    13389528   236701 三九感冒灵
5 2016-01-15 星期五   101554328   236701 三九感冒灵
6 2016-01-20 星期三    13389528   236701 三九感冒灵
  销售数量 应收金额 实收金额
1        7      196   182.00
2        3       84    84.00
3        3       84    73.92
4        1       28    28.00
5        8      224   208.00
6        1       28    28.00

二、数据预处理

1、删除缺失值:

> x <- x[!is.na(x$购药时间),]
> md.pattern(x)
     购药时间 社保卡号 商品编码 商品名称 销售数量
[1,]        1        1        1        1        1
[2,]        0        0        0        0        0
     应收金额 实收金额  
[1,]        1        1 0
[2,]        0        0 0

2、日期处理:

> t <- str_split_fixed(x$购药时间,"  ",n=2)
> x$购药时间 <- t[,1]
> x$购药时间 <- as.Date(x$购药时间,"%Y-%m-%d")
> head(x$购药时间)
[1] "2016-01-01" "2016-01-02" "2016-01-06"
[4] "2016-01-11" "2016-01-15" "2016-01-20"

3、数据类型转换:

> x$销售数量 <- as.numeric(x$销售数量)
Warning messages:
1: In grepl("|||", what, fixed = TRUE) :
  input string 1 is invalid in this locale
2: In grepl("|||", what, fixed = TRUE) :
  input string 1 is invalid in this locale
> x$应收金额 <- as.numeric(x$应收金额)
> x$实收金额 <- as.numeric(x$实收金额)
> head(x)
    购药时间    社保卡号 商品编码   商品名称 销售数量
1 2016-01-01     1616528   236701 三九感冒灵        7
2 2016-01-02     1616528   236701 三九感冒灵        3
3 2016-01-06 10070343428   236701 三九感冒灵        3
4 2016-01-11    13389528   236701 三九感冒灵        1
5 2016-01-15   101554328   236701 三九感冒灵        8
6 2016-01-20    13389528   236701 三九感冒灵        1
  应收金额 实收金额
1      196   182.00
2       84    84.00
3       84    73.92
4       28    28.00
5      224   208.00
6       28    28.00

4、数据排序:

> x <- x[order(x$购药时间,decreasing=FALSE),]
> head(x)
      购药时间    社保卡号 商品编码
1   2016-01-01     1616528   236701
265 2016-01-01   101470528   236709
399 2016-01-01 10072612028  2367011
400 2016-01-01 10074599128  2367011
894 2016-01-01    11743428   861405
895 2016-01-01    13331728   861405
                    商品名称 销售数量 应收金额
1                 三九感冒灵        7    196.0
265                   心痛定        4    179.2
399                   开博通        1     28.0
400                   开博通        5    140.0
894 苯磺酸氨氯地平片(络活喜)        1     34.5
895 苯磺酸氨氯地平片(络活喜)        2     69.0
    实收金额
1      182.0
265    159.2
399     25.0
400    125.0
894     31.0
895     62.0

三、数据分析

业务指标1:月均消费次数

月消费次数=消费的总次数/月数    PS:同一天同一个人购买所有消费次数计作一次消费,以社保卡号和消费时间作为切入点。

> xf <- x[!duplicated(x[,c("购药时间","社保卡号")]),]
> zxf <- nrow(xf)
> xs <- xf$购药时间[1]
> ds <- xf$购药时间[nrow(xf)]
> ts <- as.numeric(ds - xs)
> yf <- ts %/% 30
> yf
[1] 6
> yjxf <- zxf / yf
> yjxf <- format(round(yjxf,2),nsmall = 2)
> yjxf
[1] "899.67"
> 
月均消费=899.67


业务指标2:月均消费金额

月均消费金额=总消费金额/月份数

> zxfe <- sum(x$实收金额,na.rm =TRUE)
> yjxfe <- zxfe / yf
> zxfe
[1] 304630.3
> yjxfe
[1] 50771.71

总消费额=304630.3

月均消费额= 50771.71

业务指标3:客单价 PCT

客单价=总消费金额/总消费次数

> pct <- zxfe /zxf
> pct <- format(round(pct,2),nsmall = 2)
> pct
[1] "56.43"
> 

客单价=56.43

业务指标4:消费曲线图

绘制图表,确立横坐标为周数,纵坐标为销售金额。

计算每周的销售金额。我们使用分组函数tapply()

> week <- tapply(x$实收金额,format(x$购药时间,"%Y-%U"),sum)
> week
 2016-00  2016-01  2016-02  2016-03  2016-04  2016-05 
 1972.80  9679.64 10979.01  8719.73 15662.30 18758.82 
 2016-06  2016-07  2016-08  2016-09  2016-10  2016-11 
 3665.70  8441.51  8453.57  9988.98  8500.78  9869.16 
 2016-12  2016-13  2016-14  2016-15  2016-16  2016-17 
10135.23  8426.46 11400.66 14408.21 10385.33 10265.98 
 2016-18  2016-19  2016-20  2016-21  2016-22  2016-23 
 9496.06  9728.40 11794.11 11497.20  9530.38 10806.71 
 2016-24  2016-25  2016-26  2016-27  2016-28  2016-29 
11877.43 14077.38 10894.90  8386.97 13372.67  3454.18

将数据转换为数据框结构。

week <- as.data.frame.table(week)

对列名重命名

> names(week) <- c("time","actualmoney")
> week$time <- as.character(week$time)
> week$timeNumber <- c(1:nrow(week))

绘制图形

> plot(week$timeNumber,week$actualmoney,
+ xlab="时间(年份—第几周)",
+ ylab="消费金额",
+ xaxt="n",
+ main="2016年朝阳医院消费曲线",
+ col="blue",
+ type="b")
> axis(1,at=week$timeNumber,labels = week$time,cex.axis=1.5)

朝阳医院销售趋势数据分析_第2张图片

由图所示根据每周变化规律和总体销售趋势,合理调整各类药品库存,减少资金压力。


你可能感兴趣的:(朝阳医院销售趋势数据分析)