R語言實戰第三四章內容學習及心得
首先,邊看書邊將書上的代碼敲了一遍,基本錯誤都在於漏敲字母之類。
接著將猴子老師的課程聽了幾遍,又敲了代碼,書上沒有的幾個函數理解和應用起來有點小困難。
最後,按照猴子老師的要求,自己練習處理數據。
這一關的難點在於自己獨立處理數據,以下是遇到的苦難及心得。
1.數據源
不知道去哪找數據源。
通過看社群成員的討論及文章,知道了kaggle這個平台。另外,網路搜索後知道數據堂等網站也有很多好的數據。具體參見數據分析和挖掘有哪些公開的數據來源? - 知乎。
2.看書要逐字逐句看
平常敲書上的代碼或者課程中的代碼都很容易,一旦自己運用起來卻很困難。
具體一些函數的相關參數的用法不熟悉,經一番搜索後解決了,後來再看書發現書上已經講了相關內容。體現了自己看書不仔細的缺點,另外,也沒有及時複習。最好的方法是做筆記,就算是複述一遍也能更好的理解和記憶。
3.熟悉了help的用法
在練習的過程中,根據自己的需要,熟悉了help的用法,尤其是例子的使用,感覺非常方便。
下面是作業:
處理朝陽醫院數據:
1.導入數據
require("openxlsx")readFilePath<-"E:/朝陽醫院2016年銷售數據.xlsx"excelData<-read.xlsx(readFilePath,"Sheet1")require("stringr")
2.重命名列名
names(excelData)<-c("time","cardno","drugID", "drugname","saleNumber", "virtualmoney","actualmoney")
3.刪除缺失行
excelData<-excelData[!is.na(excelData$time),]
4.處理時間
timeSplit<-str_split_fixed(excelData$time," ",n=2)excelData$time<-timeSplit[,1]excelData$time<-as.Date(excelData$time,"%Y-%m-%d")
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),]
7.刪除重複行
kpi1<-excelData[!duplicated(excelData[,c("time","cardno")]),]
8.計算消費者數量
consumeNumber<-nrow(kpi1)
9.計算月份數
startTime<-kpi1$time[1]endTime<-kpi1$time[consumeNumber]day<-as.numeric(endTime-startTime)month<-day%/%30
10.計算月消費次數
monthConsume<-consumeNumber/monthmonthConsume<-format(round(monthConsume,2),nsmall = 2)<-format(round(monthConsume,2),nsmall = 2)
結果:
> monthConsume[1] "899.67"
11.計算月均消費金額
totalMoney<-sum(excelData$actualmoney,na.rm = TRUE)monthMoney<-totalMoney/month
結果:
> monthMoney[1] 50771.71
12.客單價
pct <- totalMoney / consumeNumberpct<-format(round(pct,2),nsmall = 2)
結果:
> pct[1] "56.43"
13.消費趨勢
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, xlab="時間(年份-第幾周)", ylab="消費金額", xaxt = "n", main= "2016年朝陽醫院消費曲線", col="blue", type="b")axis(1,at=week$timeNumber, labels=week$time, cex.axis = 1.5)
推薦閱讀:
※數據分析師入門
※吳恩達deep learning中實現CNN的小作業
※詳解特徵工程與推薦系統及其實踐
※用python建立房價預測模型|python數據分析建模實例
※泰坦尼克號倖存者特徵分析
TAG:數據分析 |