標籤:

簡單數據處理與分析

一、數據來源與分析指標

此次分析的數據是朝陽醫院2016年銷售數據,分析指標有月均消費次數、月均消費金額、客單價以及消費趨勢。

二、安裝必要的包

讀取Excel中的數據可以選擇使用openxlsx包,字元串的處理選擇使用stringr包。安裝並載入這兩個包的代碼如下:

install.packages("openxlsx")library(openxlsx)install.packages("stringr")library(stringr)

三、數據的預處理

1.讀取數據

excelreadFilePath <- "C:/朝陽醫院2016年銷售數據.xlsx"excelData <- read.xlsx(readFilePath,"Sheet1")

2.變數的重命名

names(excelData) <- c("time","cardno","drugid","drugname", "salenumber","virtualmoney", "actualmoney")

3.缺失值的處理

excelData <- excelData[!is.na(excelData$time),]

4.日期值的處理

拆分變數time並選擇日期

timeSplit <- str_split_fixed(excelData$time, " ",n=2)excelData$time <-timeSplit[,1]

轉換數據類型

class(excelData$time)excelData$time <- as.Date(excelData$time,"%Y-%m-%d")class(excelData$time)

5.其他數據類型的轉換

excelData$saleNumber <- as.numeric(excelData$saleNumber)excelData$virtualmoney <- as.numeric(excelData$virtualmoney)excelData$actualmoney <- as.numeric(excelData$actualmoney)

6.數據的排序

日期值的降序排序是指最早的日期在前面,最晚的日期在後面。

excelData <- excelData[order(excelData$time,decreasing = FALSE),]

四、數據分析

1.月均消費次數

總消費次數

kpi1 <- excelData[!duplicated(excelData[,c("time","cardno")]),] consumeNumber <- nrow(kpi1) #5398次

總月份數

starttime <- kpi1$time[1]endtime <- kpi1$time[nrow(kpi1)]days <- as.numeric(endtime-starttime) month <- days%/%30 #6個月

月均消費次數=總消費次數/總月份數

monthconsume <- consumeNumber/monthmonthConsume <- format(round(monthconsume, 2), nsmall = 2) #899.67次

2.月均消費金額

totalmoney <- sum(excelData$actualmoney,na.rm = TRUE)monthmoney <- totalmoney/month #50771.71

3.客單價

pct <- totalmoney/consumeNumberpct <- format(round(pct, 2), nsmall = 2) #56.43元

4.消費趨勢

計算相應的指標

week <- tapply(excelData$actualmoney,format(excelData$time,"%Y-%U"),sum)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,type = "b", col="blue", xlab="時間(年份-第幾周)", ylab="消費金額", xaxt="n", main="2016年朝陽醫院消費金額曲線")axis(1,at=week$timeNumber, labels=week$time, cex.axis = 1.5)

圖形效果

四、總結

整個數據分析與處理過程使用的部分函數沒有在教材中見到過,實際操作過程中總是遇到這樣或那樣的問題,如沒有區分大小寫,少了標點符號等等。需要練習和糾正的地方還有很多,希望自己能夠克服這些困難。


推薦閱讀:

python抓取課工廠網站數據和分析|python數據分析實例
用戶與許可權(節選自《MySQL數據分析實戰》講義)
一些關於TI7隊伍的數據分析——Liquid篇
記錄我是如何轉型大數據分析(二)——iris
數據團隊建設思考

TAG:數據分析 |