zoukankan      html  css  js  c++  java
  • R语言分析朝阳医院数据

                  R语言分析朝阳医院数据

    本次实践通过分析朝阳医院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)
    


    显示结果如下:

  • 相关阅读:
    jesperreport+ireport简单理解
    tomcat服务器奇异事件
    Spring+SpringMvc+Mybatis整合注意事项
    Websocket简单例子
    uploadify前台上传文件,java后台处理的例子
    违反完整约束条件 (XXX)
    插入排序
    选择排序
    冒泡算法(思路二)
    2-3树
  • 原文地址:https://www.cnblogs.com/think90/p/7091532.html
Copyright © 2011-2022 走看看