• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

R语言分析朝阳医院数据

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 

本次实践通过分析朝阳医院2016年销售数据,得出“月均消费次数”、“月均消费金额”、“客单价”、“消费趋势”等结果,并据此作出可视化图形。

一、读取数据:

library(openxlsx)
#1、读取目标数据
salesData <-read.xlsx("D:/test/朝阳医院2016年销售数据.xlsx,sheet=1")

二、对数据进行预处理:

1、列名重命名:打开excel表格发现列名都是中文名称,所以这里要对列名进行修改。

names(salesData) <- c("time","cardno","drugId","drugName","saleNumber","virtualmoney","actualmoney")
salesData #打印查看结果

显示结果如下:

2、检测缺失数据:如出现“TRUE”则为缺失值,需要处理。

#(2)检测缺失数据
is.na(salesData)

3、处理日期:

我们看到,导入的【time】列的日期是包含字符串的,所以需要把字符串分离提取需要的部分,这里用到stringr包,导入即可。

#(3)处理日期
library(stringr)#导入字符串处理包
timestrsplit <- str_split_fixed(salesData$time," ",n=2)
salesData$time <- timestrsplit[,1]
class(salesData$time)#检测数据类型
#myformat <-"%m/%d/%y"
salesData$time <-as.Date(salesData$time,"%Y-%m-%d")#转换为日期类型
class(salesData$time)#检测数据类型

显示结果如下:

4、其他类型转换:

#(4)其他类型转换
salesData$cardno <- as.numeric(salesData$cardno)
salesData$saleNumber <- as.numeric(salesData$saleNumber)
salesData$virtualmoney <- as.numeric(salesData$virtualmoney)
salesData$actualmoney <- as.numeric(salesData$actualmoney)

5、用order进行排序:

salesData <-salesData[order(salesData$time),]#将salesData按时间进行排序

显示结果如下:

三、获取目标数据指标:

1、月均消费次数

#计算月均消费次数
kpi1 <- salesData[!duplicated(salesData[c("time","cardno")]),]#定义变量kpi1,存储time和cardno的非重复值
consumeNumber <- nrow(kpi1) #计算总消费次数
startTime <-kpi1$time[1]
startTime
endTime <-kpi1$time[nrow(kpi1)]
endTime
day <- endTime-startTime #计算总天数
day#计算不同的天数为200天
month <- 200%/%30 #对月份求余
month
monthConsume <- consumeNumber/month 
monthConsume 
#得出月均消费次数为899

2、月均消费金额

#计算月均金额
totalMoney <- sum(salesData$actualmoney,na.rm = TRUE)#计算总金额
monthMoney <- totalMoney/6
monthMoney
#得出月均消费金额为50771

3、客单价

#计算客单价
kdj <-totalMoney/consumeNumber
kdj
#得出客单价为56.4

4、分组计算周消费金额

#计算周消费金额
week <- tapply(salesData$actualmoney,format(salesData$time,"%Y-%U"),sum)
week

四、绘制简单图表

week <- as.data.frame.table(week)#构造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)


显示结果如下:

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
机器学习与R语言(原书第2版)》一1.4 实践中的机器学习发布时间:2022-07-18
下一篇:
R语言快速入门发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap