標籤:

慢慢出發數據分析

慢慢出發數據分析

學生

以朝陽醫院2016年銷售數據為例進行數據分析,通過數據分析我們主要完成解決下面四個業務指標:

第一步:導入Excel數據,這裡可以通過兩種方式導入一種是通過利用openxlsx包或者是通過把格式為xlsx格式的文件改為csv格式非常容易導入。參考以下代碼:

然後對數據進行預處理:刪除所有的缺失數據NA,用到的函數有na.omit(),還有一種函數是

!is.na()函數可以有針對性的選中除缺失數據NA之外的數據,非常好用的函數。涉及的一個邏輯運算符!,表示非的意思。

對時間觀測值進行篩選去除缺失值:file<-datafile[!is.na(datafile$time),]

再對列重命名參考代碼:

names(datafile)<-c("time","cardno","drugID","drugname","salenumber","virtualmoney","actualmoney")

接著處理日期,我們用到R語言字元串處理包stringr,並利用函數str_split_fixed()

library(stringr)timesplit<-str_split_fixed(datafile$time," ",n=2)datafile$time<-timesplit[,1]

對數據日期改為date型和將其與三個改為數值型格式方便後面計算:

datafile$time<-as.Date(datafile$time,"%Y-%m-%d")datafile$saleNumber<-as.numeric(datafile$saleNumber)datafile$virtualmoney<-as.numeric(datafile$virtualmoney)datafile$actualmoney<-as.numeric(datafile$actualmoney)

對銷售時間進行排序進行 升序,利用order()函數,默認為升序系統:

datafile<-datafile[order(datafile$time),]

對數據去重:

kpi1<-datafile[!duplicated(datafile[,c("time","cardno")]),]

第二步:正式進入指標分析了

#總消費次數consumerNumer<-nrow(kpi1)consumerNumer#計算月均消費次數starttime<-kpi1$time[1]class(starttime)starttimeendtime<-kpi1$time[nrow(kpi1)]endtimedays<- as.numeric(endtime-starttime)month<-days%/%30monthconsumer<-consumerNumer/monthmonthconsumer#計算總金額totalmoney<-sum(datafile$actualmoney,na.rm = TRUE)monthmoney<-totalmoney/monthmonthmoney#客單價pprice<-totalmoney/consumerNumerpprice

計算days的時候一定要對(endtime-starttime)進行數值格式轉換:as.numeric()

最後一步就是計算消費趨勢利用分組函數taplly():

week<-tapply(datafile$actualmoney,format(datafile$time,"%Y-%m"),sum)

將week轉化為數據框結構,重命名變數,將time轉化為字元型格式:

week<-as.data.frame.table(week)names(week)<-c("time","actualmoney")week$time<-as.character(week$time)week$timeNumber<-c(1:nrow(week))#坐標軸刻度

繪畫出圖形plot():

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)

最後還有一個問題想知道的是,為什麼我的總金額 有點偏差和老師的,希望得到解答。。。。
推薦閱讀:

如何入門精益數據分析
Workshop | 新氧劉逍:用戶增長的主要策略
0030數據展現:雙坐標圖製作
【數讀】數字裝甲戰(1)
9. 一篇好的分析報告有什麼樣的標準

TAG:數據分析 |