標籤:

數據分析第三關,簡單數據處理

第二關過後,打開第三章有點蒙,這是啥呀!

可是不管三七,還是二十一,硬著頭皮看完兩張,然後書把代碼敲了一遍。(為了做練習買了一本實體書,感覺還是很方便的)然後才是聽猴子的課程。

自己感覺速度有點慢,解決的辦法只有壓榨自己了。加油!!!

#導入數據

install.packages("openxlsx")library("openxlsx")readFilsPath<-"/Users/tusm/data/朝陽醫院2016年銷售數據的副本.xlsx"excelData<-read.xlsx(readFilsPath,"Sheet1")

這次導入很順利,而且很快,記得上一關,導入數據就研究了兩天。。。。。

#列名的重命名

names(excelData)<-c("time","cardon","drugID","drugNAME","saleNumber","virtualmoney", "actualmoney")

猴子說是為了方便,我試驗了一下,應為中文經常出亂碼。

#處理缺失值

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

最後一個「,」一定要注意啊!可能只有我總是丟三落四的!

#處理日期

library(stringr)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)

還是丟三落四的問題:

1.沒有載入「stringr」,所以提示「沒有str_split_fixed這個函數」

2.excelData$time<-as.Date(excelData$time,"%Y-%m-%d")這條代碼總是有錯,原來是自己忘記了給%Y-%m-%d加上「」。

#銷量數據

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

#應收金額(打折前的金額)

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

#實收金額(打折後的金額)

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

#按銷售時間對數據進行降序排列

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

#業務指標1:月均消費次數=總消費次數/月份數

kpi1<-excelData[!duplicated(excelData[,c("time","cardon")]),]

#總消費次數

consumeNumber<-nrow(kpi1)

#月份數

#step1:獲取時間範圍

#最小時間值

startTime<-kpi1$time[1]

#最大時間值

endTime<-kpi1$time[nrow(kpi1)]

#天數

day<-endTime-startTimeday<-as.numeric(day)

#月份數

month<- day %/% 30

#月均消費次數

monthConsume<-consumeNumber/monthmonthConsume

#業務指標2:月均消費金額=總消費金額/月份數

#總消費金額

totalMoney<-sum(excelData$actualmoney,na.rm = TRUE)monthMoney<-totalMoney/monthmonthMoney

#業務指標3:客單價=總消費金額/總消費次數

pct<-totalMoney/consumeNumberpct

#業務指標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))par(family=STKaiti) #這條代碼是因為mac下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)

經過了三關的學習,發現自己的前面的計劃制定是不合理的,準備改變對自己的獎勵機制:

通關前四關,獎勵自己一個kindle。

後面每關一千元獎勵。(今年換手機的時候給自己換一個貴一點的)


推薦閱讀:

通過數據洞察世界
記錄我是如何轉型大數據分析(二)——iris
mysql查詢初級 50道練習題(語句親測無錯)
學習數據分析的意義和實踐計劃
誰說菜鳥不會數據分析·筆記

TAG:數據分析 |