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)
    


    显示结果如下:

  • 相关阅读:
    HDU 1069 Monkey and Banana
    HDU 1029 Ignatius and the Princess IV
    HDU 1024 Max Sum Plus Plus
    Gym100923H Por Costel and the Match
    Codeforces 682C Alyona and the Tree
    Codeforces 449B Jzzhu and Cities
    Codeforces (ccpc-wannafly camp day2) L. Por Costel and the Semipalindromes
    Codeforces 598D (ccpc-wannafly camp day1) Igor In the Museum
    Codeforces 1167c(ccpc wannafly camp day1) News Distribution 并查集模板
    快乐数问题
  • 原文地址:https://www.cnblogs.com/think90/p/7091532.html
Copyright © 2011-2022 走看看