簡單數據處理—實踐案例分析

某公司為某行業內國內第一家工業4.0公司。主要針對客戶製造個性定製化可穿戴設置,通過門店採集客戶信息,然後將信息傳回工廠生產,然後工廠根據客戶的個人信息進行定製化生產,然後直接發給客戶。通過獲取某公司的銷售數據進行分析,分析過程如下

1.數據分析指標

指標一:總銷售額

指標二:銷售均價及銷售中位數

指標三:某公司的銷售趨勢

指標四:每個門店的銷售趨勢

2.數據預處理

2.1數據讀取

> readpath<-"D:銷售訂單報表.xlsx"

> library("openxlsx")

> saledata<-read.xlsx(readpath,"訂單明細報表記錄")

> View(saledata)

2.2列名的更換

>names(saledata)<-c("number","store","date","salesbatchnumber","salesNumber","standprice","discount","actualprice")

2.3實際銷售額小於一百的為贈送客戶商品,因此需要刪除

> saledata<-saledata[!saledata$actualprice<=100,]#刪除實際銷售額小於100的數據

> View(saledata)

2.3日期類型轉換

> class(saledata$date)

[1] "character"

>saledata$date<-as.Date(saledata$date)

> class(saledata$date)

[1] "Date"

2.4按照日期排序

> saledata<-saledata[order(saledata$date,decreasing= FALSE),]

3.問題解決

3.1總銷售額;

總銷售額=sum[實際價格]

> class(saledata$actualprice)

[1] "numeric"

> sumsalse<-sum(saledata$actualprice)

> sumsalse

[1] 6850900

因此該公司總銷售額為6850900

3.2平均售價、售價中位數

由於該商品為個性定製商品,因此數量均為1;

> summary(saledata$actualprice)

Min. 1st Qu. Median Mean 3rd Qu. Max.

118 1380 2464 3230 4260 53600

因此平均售價為3230,售價中位數為2464

第二種方法:平均售價=銷售總額/銷售筆數

> sumsalse<-sum(saledata$actualprice)

> sumsalse

[1] 6850900

> averageprice<-sumsalse/nrow(saledata)#商品平均售價=實際銷售價格/銷售個數

> averageprice

[1] 3230.033

3.3某公司月銷售趨勢

>monthsale<-tapply(saledata$actualprice,format(saledata$date,"%Y-%m"),sum)#按月求和

> monthsale

2016-08 2016-09 2016-10 2016-11 2016-12 2017-01

1617168.4 1543164.8 1528573.2 712420.4 555476.0 894097.1

>monthsale<-as.data.frame.table(monthsale)

>names(monthsale)<-c("month","monthsales")

> monthsale

month monthsales

1 2016-08 1617168.4

2 2016-09 1543164.8

3 2016-10 1528573.2

4 2016-11 712420.4

5 2016-12 555476.0

6 2017-01 894097.1

>monthsale$month<-as.character(monthsale$month)

>monthsale$monthnumber<-c(1:nrow(monthsale))

> plot(monthsale$monthnumber,monthsale$monthsales,

+ xlab = "時間(年份-月份)",

+ ylab="銷售額",

+ main="某公司銷售額分析圖",

+ xaxt="n",

+ col="blue",

+ type="b")

> axis(1,at=monthsale$monthnumber,labels=monthsale$month,cex.axis=1.5)

3.2門店銷售趨勢

storemonthsale<-tapply(saledata$actualprice,list(format(saledata$date,"%Y-%m"),saledata$store),sum)#按照門店和日期分組

> storemonthsale

A門店 B門店 C門店 D門店 E門店 F門店 G門店

2016-08 539208.8 385424 310453.1 127095.4182667 NA 72320.00

2016-09 477167.0 388032 402961.8 115736.0127678 12480 19110.00

2016-10 578738.0 199018 317453.2 225856.0113218 63060 31229.98

2016-11 400354.0 27588 87997.4 86737.0 39762 20597 49385.00

2016-12 201467.0 NA 135234.0 114769.0 70654 18071 15281.00

2017-01 548265.0 NA 128556.1 136739.0 57150 20532 2855.00

>storemonthsale<-as.data.frame.table(storemonthsale)

> storemonthsale

Var1 Var2 Freq

1 2016-08 A門店 539208.81

2 2016-09 A門店 477167.00

3 2016-10 A門店 578738.00

4 2016-11 A門店 400354.00

5 2016-12 A門店 201467.00

6 2017-01 A門店 548265.00

7 2016-08 B門店 385424.00

8 2016-09 B門店 388032.00

9 2016-10 B門店 199018.00

10 2016-11 B門店 27588.00

11 2016-12 B門店 NA

12 2017-01 B門店 NA

13 2016-08 C門店 310453.14

14 2016-09 C門店 402961.80

15 2016-10 C門店 317453.20

16 2016-11 C門店 87997.40

17 2016-12 C門店 135234.00

18 2017-01 C門店 128556.10

19 2016-08 D門店 127095.40

20 2016-09 D門店 115736.00

21 2016-10 D門店 225856.00

22 2016-11 D門店 86737.00

23 2016-12 D門店 114769.00

24 2017-01 D門店 136739.00

25 2016-08 E門店 182667.00

26 2016-09 E門店 127678.00

27 2016-10 E門店 113218.00

28 2016-11 E門店 39762.00

29 2016-12 E門店 70654.00

30 2017-01 E門店 57150.00

31 2016-08 F門店 NA

32 2016-09 F門店 12480.00

33 2016-10 F門店 63060.00

34 2016-11 F門店 20597.00

35 2016-12 F門店 18071.00

36 2017-01 F門店 20532.00

37 2016-08 G門店 72320.00

38 2016-09 G門店 19110.00

39 2016-10 G門店 31229.98

40 2016-11 G門店 49385.00

41 2016-12 G門店 15281.00

42 2017-01 G門店 2855.00

>names(storemonthsale)<-c("month","store","totalsale")

> storemonthsale

month store totalsale

1 2016-08 A門店 539208.81

2 2016-09 A門店 477167.00

3 2016-10 A門店 578738.00

4 2016-11 A門店 400354.00

5 2016-12 A門店 201467.00

6 2017-01 A門店 548265.00

7 2016-08 B門店 385424.00

8 2016-09 B門店 388032.00

9 2016-10 B門店 199018.00

10 2016-11 B門店 27588.00

11 2016-12 B門店 NA

12 2017-01 B門店 NA

13 2016-08 C門店 310453.14

14 2016-09 C門店 402961.80

15 2016-10 C門店 317453.20

16 2016-11 C門店 87997.40

17 2016-12 C門店 135234.00

18 2017-01 C門店 128556.10

19 2016-08 D門店 127095.40

20 2016-09 D門店 115736.00

21 2016-10 D門店 225856.00

22 2016-11 D門店 86737.00

23 2016-12 D門店 114769.00

24 2017-01 D門店 136739.00

25 2016-08 E門店 182667.00

26 2016-09 E門店 127678.00

27 2016-10 E門店 113218.00

28 2016-11 E門店 39762.00

29 2016-12 E門店 70654.00

30 2017-01 E門店 57150.00

31 2016-08 F門店 NA

32 2016-09 F門店 12480.00

33 2016-10 F門店 63060.00

34 2016-11 F門店 20597.00

35 2016-12 F門店 18071.00

36 2017-01 F門店 20532.00

37 2016-08 G門店 72320.00

38 2016-09 G門店 19110.00

39 2016-10 G門店 31229.98

40 2016-11 G門店 49385.00

41 2016-12 G門店 15281.00

42 2017-01 G門店 2855.00

> storemonthsale$monthnumber<-c(1:6)

> storemonthsale

month store totalsale monthnumber

1 2016-08 A門店 539208.81 1

2 2016-09 A門店 477167.00 2

3 2016-10 A門店 578738.00 3

4 2016-11 A門店 400354.00 4

5 2016-12 A門店 201467.00 5

6 2017-01 A門店 548265.00 6

7 2016-08 B門店385424.00 1

8 2016-09 B門店388032.00 2

9 2016-10 B門店199018.00 3

10 2016-11 B門店 27588.00 4

11 2016-12 B門店 NA 5

12 2017-01 B門店 NA 6

13 2016-08 C門店 310453.14 1

14 2016-09 C門店 402961.80 2

15 2016-10 C門店 317453.20 3

16 2016-11 C門店 87997.40 4

17 2016-12 C門店 135234.00 5

18 2017-01 C門店 128556.10 6

19 2016-08 D門店 127095.40 1

20 2016-09 D門店 115736.00 2

21 2016-10 D門店 225856.00 3

22 2016-11 D門店 86737.00 4

23 2016-12 D門店 114769.00 5

24 2017-01 D門店 136739.00 6

25 2016-08 E門店182667.00 1

26 2016-09 E門店 127678.00 2

27 2016-10 E門店 113218.00 3

28 2016-11 E門店 39762.00 4

29 2016-12 E門店 70654.00 5

30 2017-01 E門店 57150.00 6

31 2016-08 F門店 NA 1

32 2016-09 F門店 12480.00 2

33 2016-10 F門店 63060.00 3

34 2016-11 F門店 20597.00 4

35 2016-12 F門店 18071.00 5

36 2017-01 F門店 20532.00 6

37 2016-08 G門店 72320.00 1

38 2016-09 G門店 19110.00 2

39 2016-10 G門店 31229.98 3

40 2016-11 G門店 49385.00 4

41 2016-12 G門店 15281.00 5

42 2017-01 G門店 2855.00 6

>storemonthsale[is.na(storemonthsale)]=0#將Na賦值為0

>storemonthsale$store<-as.character(storemonthsale$store)

> class(storemonthsale$store)

[1] "character"

>Amonthsale<-storemonthsale[which(storemonthsale$store=="A門店 "),]#A門店銷售數據

> Amonthsale

month store totalsale monthnumber

1 2016-08 A門店 539208.8 1

2 2016-09 A門店 477167.0 2

3 2016-10 A門店 578738.0 3

4 2016-11 A門店 400354.0 4

5 2016-12 A門店 201467.0 5

6 2017-01 A門店 548265.0 6

>Bmonthsale<-subset(storemonthsale,storemonthsale$store=="B門店")#B門店銷售數據

> Bmonthsale

month store totalsale monthnumber

7 2016-08 B門店 385424 1

8 2016-09 B門店 388032 2

9 2016-10 B門店 199018 3

10 2016-11 B門店 27588 4

11 2016-12 B門店 0 5

12 2017-01 B門店 0 6

> Cmonthsale<-subset(storemonthsale,storemonthsale$store=="C門店")#C門店銷售數據

> Cmonthsale

month store totalsale monthnumber

13 2016-08 C門店 310453.1 1

14 2016-09 C門店 402961.8 2

15 2016-10 C門店 317453.2 3

16 2016-11 C門店 87997.4 4

17 2016-12 C門店 135234.0 5

18 2017-01 C門店 128556.1 6

>Dmonthsale<-subset(storemonthsale,storemonthsale$store=="D門店")#D門店銷售數據

> Dmonthsale

month store totalsale monthnumber

19 2016-08 D門店 127095.4 1

20 2016-09 D門店 115736.0 2

21 2016-10 D門店 225856.0 3

22 2016-11 D門店 86737.0 4

23 2016-12 D門店 114769.0 5

24 2017-01 D門店 136739.0 6

>Emonthsale<-subset(storemonthsale,storemonthsale$store=="E門店")#E門店銷售數據

> Emonthsale

month store totalsale monthnumber

25 2016-08 E門店 182667 1

26 2016-09 E門店 127678 2

27 2016-10 E門店 113218 3

28 2016-11 E門店 39762 4

29 2016-12 E門店 70654 5

30 2017-01 E門店 57150 6

>Fmonthsale<-subset(storemonthsale,storemonthsale$store=="F門店")#F門店銷售數據

> Fmonthsale

month store totalsale monthnumber

31 2016-08 F門店 0 1

32 2016-09 F門店 12480 2

33 2016-10 F門店 63060 3

34 2016-11 F門店 20597 4

35 2016-12 F門店 18071 5

36 2017-01 F門店 20532 6

>Gmonthsale<-subset(storemonthsale,storemonthsale$store=="G門店")#G門店銷售數據

> Gmonthsale

month store totalsale monthnumber

37 2016-08 G門店 72320.00 1

38 2016-09 G門店 19110.00 2

39 2016-10 G門店 31229.98 3

40 2016-11 G門店 49385.00 4

41 2016-12 G門店 15281.00 5

42 2017-01 G門店 2855.00 6

>plot(Amonthsale$monthnumber,Amonthsale$totalsale,

+ xlab = "時間(年份-月份)",

+ ylab="銷售額",

+ main="某公司A門店銷售額分析圖",

+ xaxt="n",

+ col="blue",type = "b")

>axis(1,at=Amonthsale$monthnumber,labels=Amonthsale$month,cex.axis=1.5)

>plot(Bmonthsale$monthnumber,Bmonthsale$totalsale,

+ xlab = "時間(年份-月份)",

+ ylab="銷售額",

+ main="某公司B門店銷售額分析圖",

+ xaxt="n",

+ col="blue",type = "b")

>axis(1,at=Amonthsale$monthnumber,labels=Amonthsale$month,cex.axis=1.5)

>plot(Cmonthsale$monthnumber,Cmonthsale$totalsale,

+ xlab = "時間(年份-月份)",

+ ylab="銷售額",

+ main="某公司C門店銷售額分析圖",

+ xaxt="n",

+ col="blue",type = "b")

>axis(1,at=Amonthsale$monthnumber,labels=Amonthsale$month,cex.axis=1.5)

>plot(Dmonthsale$monthnumber,Dmonthsale$totalsale,

+ xlab = "時間(年份-月份)",

+ ylab="銷售額",

+ main="某公司D門店銷售額分析圖",

+ xaxt="n",

+ col="blue",type ="b")

>axis(1,at=Amonthsale$monthnumber,labels=Amonthsale$month,cex.axis=1.5)

>plot(Emonthsale$monthnumber,Emonthsale$totalsale,

+ xlab = "時間(年份-月份)",

+ ylab="銷售額",

+ main="某公司E門店銷售額分析圖",

+ xaxt="n",

+ col="blue",type = "b")

>axis(1,at=Amonthsale$monthnumber,labels=Amonthsale$month,cex.axis=1.5)

> plot(Fmonthsale$monthnumber,Fmonthsale$totalsale,

+ xlab = "時間(年份-月份)",

+ ylab="銷售額",

+ main="某公司F門店銷售額分析圖",

+ xaxt="n",

+ col="blue",

+ type = "b")

> axis(1,at=Amonthsale$monthnumber,labels=Amonthsale$month,cex.axis=1.5)

> plot(Gmonthsale$monthnumber,Gmonthsale$totalsale,

+ xlab = "時間(年份-月份)",

+ ylab="銷售額",

+ main="某公司G門店銷售額分析圖",

+ xaxt="n",

+ col="blue",

+ type = "b")

> axis(1,at=Amonthsale$monthnumber,labels=Amonthsale$month,cex.axis=1.5)


推薦閱讀:

2017年數據分析實踐具體計劃
從頭學習大數據培訓課程 NOSQL 資料庫 hbase(三)hbase 的 filter 用法,hbase 數據的批量導入
G20遐想:馬雲、李彥宏、孫丕恕等大咖們的數據觀
第三章:大數據技術在配電網中的應用(國內外現狀)
大數據計數原理1+0=1這你都不會算(三)No.51

TAG:數據分析 | 大數據 |