objectifs <- read.csv2("D:/Activator/objectifs.csv", colClasses = c('character', rep('numeric',4)))
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
objectifs
## Clients Janvier Fevrier Mars Objectifs.Premier.Trimestre.2017
## 1 JDDS 7000 9000 10000 26000
## 2 Nealiko CMR 2000 3000 4000 9000
## 3 Dreams 4200 5200 4000 NA
## 4 Ets Gnepiba 500 1100 1200 2800
## 5 PRODIS 2000 4500 5000 11500
## 6 JIPEDIS 1000 1300 2000 4300
## 7 Atomic 2500 4000 3000 9500
## 8 G3-Biz 500 800 1000 2300
## 9 Magne R 800 900 900 2600
## 10 Bridia 150 200 400 750
## 11 STS 2200 2800 3400 8400
## 12 TMG 400 1000 1200 2600
## 13 Oumarou 1800 2500 2500 6800
## 14 Spider 1000 2000 800 3800
## 15 SOGEDICAM 400 500 400 1300
## 16 MGC 500 700 300 1500
## 17 SIEGA 400 300 290 990
## 18 SAGEL Negoce 700 3000 2000 5700
## 19 MAND CO 1000 1800 1800 4600
## 20 Obala 800 1200 700 2700
## 21 Total 29850 45800 44890 107140
## 22 NA NA NA NA
objectifs[which(!complete.cases(objectifs)),]
## Clients Janvier Fevrier Mars Objectifs.Premier.Trimestre.2017
## 3 Dreams 4200 5200 4000 NA
## 22 NA NA NA NA
A la troisième ligne on a une valeur manquantes sur la colonne Objectifs.Premier.Trimestre.2017, vraisemblablement en regardant cette colonnes il s’agit de la somme des objectifs fixés en janvier fevrier et Mars
On peut donc l’imputer la somme correspondante à la ligne.
Pour la ligne 22 on peut tout simplement la supprimer
objectifs$Objectifs.Premier.Trimestre.2017[3] <- sum(objectifs[3,2:4])
objectifs <- objectifs[-22,]
objectifs
## Clients Janvier Fevrier Mars Objectifs.Premier.Trimestre.2017
## 1 JDDS 7000 9000 10000 26000
## 2 Nealiko CMR 2000 3000 4000 9000
## 3 Dreams 4200 5200 4000 13400
## 4 Ets Gnepiba 500 1100 1200 2800
## 5 PRODIS 2000 4500 5000 11500
## 6 JIPEDIS 1000 1300 2000 4300
## 7 Atomic 2500 4000 3000 9500
## 8 G3-Biz 500 800 1000 2300
## 9 Magne R 800 900 900 2600
## 10 Bridia 150 200 400 750
## 11 STS 2200 2800 3400 8400
## 12 TMG 400 1000 1200 2600
## 13 Oumarou 1800 2500 2500 6800
## 14 Spider 1000 2000 800 3800
## 15 SOGEDICAM 400 500 400 1300
## 16 MGC 500 700 300 1500
## 17 SIEGA 400 300 290 990
## 18 SAGEL Negoce 700 3000 2000 5700
## 19 MAND CO 1000 1800 1800 4600
## 20 Obala 800 1200 700 2700
## 21 Total 29850 45800 44890 107140
View of correlation
pairs(objectifs[,2:5])
stocks <- read.csv2("D:/Activator/stocks.csv", stringsAsFactors = FALSE)
#
head(stocks,20)
## Article Region Clients X1.Jan.17 X31.Jan.17 X28.Feb.17
## 1 FES 65cl Douala JDDS 278 170 125
## 2 FES 33cl Douala JDDS 1 886 1 715 1 939
## 3 FES 50cl Douala JDDS - - -
## 4 FES 50cl x 15 Douala JDDS 1 1 1
## 5 FES Cans Douala JDDS - - -
## 6 GES x 15 Douala JDDS 770 1 165 1 100
## 7 GES 65cl Douala JDDS 183 66 (61)
## 8 MG Douala JDDS 3 1 -
## 9 MG Cans Douala JDDS - - -
## 10 SAT Douala JDDS - - -
## 11 GHP Douala JDDS - - -
## 12 HAR 60cl Douala JDDS 1 131 783 1 001
## 13 HAR 30cl Douala JDDS 44 44 43
## 14 WIN Douala JDDS - - -
## 15 SMR Douala JDDS - - -
## 16 SMB Douala JDDS 1 (5) (6)
## 17 Orijin 65cl Douala JDDS - - -
## 18 Orijin 60cl Douala JDDS 30 29 580
## 19 HAR 65cl Douala JDDS - - -
## 20 SMIE Douala JDDS 314 271 245
## X31.Mar.17
## 1 21
## 2 1 712
## 3 -
## 4 1
## 5 -
## 6 763
## 7 (63)
## 8 (9)
## 9 -
## 10 -
## 11 -
## 12 1 025
## 13 42
## 14 -
## 15 -
## 16 (6)
## 17 -
## 18 275
## 19 -
## 20 226
En visualisant le tableau de données stocks, on remarque la presence de beaucoup de caractère “-”. Une attention précise du set nous indique qu’il s’agit de valeur nulle zéros
# On remplace le caractère "-", par "0"
for (i in 4:7){
stocks[,i] <- gsub("-","0", stocks[,i])
}
supprimons les espaces entres les nombres
for (i in 4:7){
stocks[,i] <- gsub(" ","", stocks[,i])
}
Un coup d’oeil sur le jeu stocks à présent
head(stocks,20)
## Article Region Clients X1.Jan.17 X31.Jan.17 X28.Feb.17
## 1 FES 65cl Douala JDDS 278 170 125
## 2 FES 33cl Douala JDDS 1886 1715 1939
## 3 FES 50cl Douala JDDS 0 0 0
## 4 FES 50cl x 15 Douala JDDS 1 1 1
## 5 FES Cans Douala JDDS 0 0 0
## 6 GES x 15 Douala JDDS 770 1165 1100
## 7 GES 65cl Douala JDDS 183 66 (61)
## 8 MG Douala JDDS 3 1 0
## 9 MG Cans Douala JDDS 0 0 0
## 10 SAT Douala JDDS 0 0 0
## 11 GHP Douala JDDS 0 0 0
## 12 HAR 60cl Douala JDDS 1131 783 1001
## 13 HAR 30cl Douala JDDS 44 44 43
## 14 WIN Douala JDDS 0 0 0
## 15 SMR Douala JDDS 0 0 0
## 16 SMB Douala JDDS 1 (5) (6)
## 17 Orijin 65cl Douala JDDS 0 0 0
## 18 Orijin 60cl Douala JDDS 30 29 580
## 19 HAR 65cl Douala JDDS 0 0 0
## 20 SMIE Douala JDDS 314 271 245
## X31.Mar.17
## 1 21
## 2 1712
## 3 0
## 4 1
## 5 0
## 6 763
## 7 (63)
## 8 (9)
## 9 0
## 10 0
## 11 0
## 12 1025
## 13 42
## 14 0
## 15 0
## 16 (6)
## 17 0
## 18 275
## 19 0
## 20 226
Il y a plusieurs données entre parenthèses, nettoyons les!
for (i in 4:7){
stocks[,i] <- gsub("\\(|\\)","", stocks[,i])
}
Verifions si nous n’avons pas de cases vides
stocks[which(!complete.cases(stocks)),]
## [1] Article Region Clients X1.Jan.17 X31.Jan.17 X28.Feb.17
## [7] X31.Mar.17
## <0 rows> (or 0-length row.names)
stocks[sample(20),]
## Article Region Clients X1.Jan.17 X31.Jan.17 X28.Feb.17
## 4 FES 50cl x 15 Douala JDDS 1 1 1
## 9 MG Cans Douala JDDS 0 0 0
## 14 WIN Douala JDDS 0 0 0
## 1 FES 65cl Douala JDDS 278 170 125
## 11 GHP Douala JDDS 0 0 0
## 6 GES x 15 Douala JDDS 770 1165 1100
## 19 HAR 65cl Douala JDDS 0 0 0
## 12 HAR 60cl Douala JDDS 1131 783 1001
## 17 Orijin 65cl Douala JDDS 0 0 0
## 16 SMB Douala JDDS 1 5 6
## 2 FES 33cl Douala JDDS 1886 1715 1939
## 3 FES 50cl Douala JDDS 0 0 0
## 18 Orijin 60cl Douala JDDS 30 29 580
## 15 SMR Douala JDDS 0 0 0
## 5 FES Cans Douala JDDS 0 0 0
## 7 GES 65cl Douala JDDS 183 66 61
## 8 MG Douala JDDS 3 1 0
## 10 SAT Douala JDDS 0 0 0
## 13 HAR 30cl Douala JDDS 44 44 43
## 20 SMIE Douala JDDS 314 271 245
## X31.Mar.17
## 4 1
## 9 0
## 14 0
## 1 21
## 11 0
## 6 763
## 19 0
## 12 1025
## 17 0
## 16 6
## 2 1712
## 3 0
## 18 275
## 15 0
## 5 0
## 7 63
## 8 9
## 10 0
## 13 42
## 20 226
Il n’y a plus de valeurs manquantes, reste à convertir les les colonnes 4 à 7 en type numeric
stocks2 <- stocks
for (i in 4:7){
stocks[,i] <- as.numeric(stocks[,i])
}
head(stocks, 20)
## Article Region Clients X1.Jan.17 X31.Jan.17 X28.Feb.17
## 1 FES 65cl Douala JDDS 278 170 125
## 2 FES 33cl Douala JDDS 1886 1715 1939
## 3 FES 50cl Douala JDDS 0 0 0
## 4 FES 50cl x 15 Douala JDDS 1 1 1
## 5 FES Cans Douala JDDS 0 0 0
## 6 GES x 15 Douala JDDS 770 1165 1100
## 7 GES 65cl Douala JDDS 183 66 61
## 8 MG Douala JDDS 3 1 0
## 9 MG Cans Douala JDDS 0 0 0
## 10 SAT Douala JDDS 0 0 0
## 11 GHP Douala JDDS 0 0 0
## 12 HAR 60cl Douala JDDS 1131 783 1001
## 13 HAR 30cl Douala JDDS 44 44 43
## 14 WIN Douala JDDS 0 0 0
## 15 SMR Douala JDDS 0 0 0
## 16 SMB Douala JDDS 1 5 6
## 17 Orijin 65cl Douala JDDS 0 0 0
## 18 Orijin 60cl Douala JDDS 30 29 580
## 19 HAR 65cl Douala JDDS 0 0 0
## 20 SMIE Douala JDDS 314 271 245
## X31.Mar.17
## 1 21
## 2 1712
## 3 0
## 4 1
## 5 0
## 6 763
## 7 63
## 8 9
## 9 0
## 10 0
## 11 0
## 12 1025
## 13 42
## 14 0
## 15 0
## 16 6
## 17 0
## 18 275
## 19 0
## 20 226
stocks[which(!complete.cases(stocks2)),]
## [1] Article Region Clients X1.Jan.17 X31.Jan.17 X28.Feb.17
## [7] X31.Mar.17
## <0 rows> (or 0-length row.names)
La table stocks est prête !
ventes<- read.csv2("D:/Activator/Ventes.csv",stringsAsFactors = FALSE)
Visualisons un peu ce jeu de données
head(ventes, 20)
## Article Region Clients X1.Jan.17 X5.Jan.17 X10.Jan.17 X15.Jan.17
## 1 FES 65cl Douala JDDS 50 95 210 -
## 2 FES 33cl Douala JDDS 234 436 526 -
## 3 FES 50cl Douala JDDS - - - -
## 4 FES 50cl x 15 Douala JDDS - - - -
## 5 FES Cans Douala JDDS - - - -
## 6 GES x 15 Douala JDDS - 3 - -
## 7 GES 65cl Douala JDDS 98 256 162 -
## 8 MG Douala JDDS 18 11 4 -
## 9 MG Cans Douala JDDS - - - -
## 10 SAT Douala JDDS - - - -
## 11 GHP Douala JDDS - - - -
## 12 HAR 60cl Douala JDDS 247 387 482 -
## 13 HAR 30cl Douala JDDS 2 1 1 -
## 14 WIN Douala JDDS - - - -
## 15 SMR Douala JDDS - - - -
## 16 SMB Douala JDDS 1 3 35 -
## 17 Orijin 65cl Douala JDDS - - - -
## 18 Orijin 60cl Douala JDDS 11 3 - -
## 19 HAR 65cl Douala JDDS - - - -
## 20 SMIE Douala JDDS 28 56 76 -
## X25.Jan.17 X6.Feb.17 X12.fev17 X19.Fev17 X21Fev17 X28Fev17 X1.Mar.17
## 1 247 123 69 215 347 308 -
## 2 599 443 297 534 692 729 -
## 3 - - - - - - -
## 4 - - - - - - -
## 5 - - - - - - -
## 6 - - - 642 977 1 133 -
## 7 14 300 338 453 7 5 -
## 8 - - - - 57 - -
## 9 - - - - - - -
## 10 - - - - - - -
## 11 - - - - - - -
## 12 768 539 338 299 366 488 -
## 13 1 1 2 1 1 7 -
## 14 - - - - - - -
## 15 - - - - - - -
## 16 - - 10 - - - -
## 17 - - - - - - -
## 18 - - - 45 979 927 -
## 19 - - - - - - -
## 20 67 67 134 32 43 74 -
## X8.Mar.17 X15.Mar.17 X21.Mar.17 X30.Mar.17
## 1 318 73 3 207
## 2 622 608 445 494
## 3 - - - -
## 4 - - - -
## 5 - - - -
## 6 983 962 581 438
## 7 - 1 1 1
## 8 - - - -
## 9 - - - -
## 10 - - - -
## 11 - - - -
## 12 635 770 407 422
## 13 1 1 - 2
## 14 - - - -
## 15 - - - -
## 16 - - - -
## 17 - - - -
## 18 665 573 372 398
## 19 - - - -
## 20 72 80 41 45
On a 440 lignes et 16 colonnes
nous allons le nettoyer de la même façons que le stocks
# On remplace le caractère "-", par "0"
for (i in 4:18){
ventes[,i] <- gsub("-","0", ventes[,i])
}
# On remplace le caractère " ", par ""
for (i in 4:18){
ventes[,i] <- gsub(" ","", ventes[,i])
}
Takes a loop !
head(ventes,20)
## Article Region Clients X1.Jan.17 X5.Jan.17 X10.Jan.17 X15.Jan.17
## 1 FES 65cl Douala JDDS 50 95 210 0
## 2 FES 33cl Douala JDDS 234 436 526 0
## 3 FES 50cl Douala JDDS 0 0 0 0
## 4 FES 50cl x 15 Douala JDDS 0 0 0 0
## 5 FES Cans Douala JDDS 0 0 0 0
## 6 GES x 15 Douala JDDS 0 3 0 0
## 7 GES 65cl Douala JDDS 98 256 162 0
## 8 MG Douala JDDS 18 11 4 0
## 9 MG Cans Douala JDDS 0 0 0 0
## 10 SAT Douala JDDS 0 0 0 0
## 11 GHP Douala JDDS 0 0 0 0
## 12 HAR 60cl Douala JDDS 247 387 482 0
## 13 HAR 30cl Douala JDDS 2 1 1 0
## 14 WIN Douala JDDS 0 0 0 0
## 15 SMR Douala JDDS 0 0 0 0
## 16 SMB Douala JDDS 1 3 35 0
## 17 Orijin 65cl Douala JDDS 0 0 0 0
## 18 Orijin 60cl Douala JDDS 11 3 0 0
## 19 HAR 65cl Douala JDDS 0 0 0 0
## 20 SMIE Douala JDDS 28 56 76 0
## X25.Jan.17 X6.Feb.17 X12.fev17 X19.Fev17 X21Fev17 X28Fev17 X1.Mar.17
## 1 247 123 69 215 347 308 0
## 2 599 443 297 534 692 729 0
## 3 0 0 0 0 0 0 0
## 4 0 0 0 0 0 0 0
## 5 0 0 0 0 0 0 0
## 6 0 0 0 642 977 1133 0
## 7 14 300 338 453 7 5 0
## 8 0 0 0 0 57 0 0
## 9 0 0 0 0 0 0 0
## 10 0 0 0 0 0 0 0
## 11 0 0 0 0 0 0 0
## 12 768 539 338 299 366 488 0
## 13 1 1 2 1 1 7 0
## 14 0 0 0 0 0 0 0
## 15 0 0 0 0 0 0 0
## 16 0 0 10 0 0 0 0
## 17 0 0 0 0 0 0 0
## 18 0 0 0 45 979 927 0
## 19 0 0 0 0 0 0 0
## 20 67 67 134 32 43 74 0
## X8.Mar.17 X15.Mar.17 X21.Mar.17 X30.Mar.17
## 1 318 73 3 207
## 2 622 608 445 494
## 3 0 0 0 0
## 4 0 0 0 0
## 5 0 0 0 0
## 6 983 962 581 438
## 7 0 1 1 1
## 8 0 0 0 0
## 9 0 0 0 0
## 10 0 0 0 0
## 11 0 0 0 0
## 12 635 770 407 422
## 13 1 1 0 2
## 14 0 0 0 0
## 15 0 0 0 0
## 16 0 0 0 0
## 17 0 0 0 0
## 18 665 573 372 398
## 19 0 0 0 0
## 20 72 80 41 45
ventes[which(!complete.cases(ventes)),]
## [1] Article Region Clients X1.Jan.17 X5.Jan.17 X10.Jan.17
## [7] X15.Jan.17 X25.Jan.17 X6.Feb.17 X12.fev17 X19.Fev17 X21Fev17
## [13] X28Fev17 X1.Mar.17 X8.Mar.17 X15.Mar.17 X21.Mar.17 X30.Mar.17
## <0 rows> (or 0-length row.names)
Convertissons pour finir les colonnes 4 à 16 en type numeric
for (i in 4:18){
ventes[,i] <- as.numeric(ventes[,i])
}
ventes[which(!complete.cases(ventes)),]
## [1] Article Region Clients X1.Jan.17 X5.Jan.17 X10.Jan.17
## [7] X15.Jan.17 X25.Jan.17 X6.Feb.17 X12.fev17 X19.Fev17 X21Fev17
## [13] X28Fev17 X1.Mar.17 X8.Mar.17 X15.Mar.17 X21.Mar.17 X30.Mar.17
## <0 rows> (or 0-length row.names)
La table ventes est donc prête pour l’analyse
for (i in 1:nrow(ventes)){
ventes$total[i] <- sum(ventes[i,4:16])
}
head(ventes, 20)
## Article Region Clients X1.Jan.17 X5.Jan.17 X10.Jan.17 X15.Jan.17
## 1 FES 65cl Douala JDDS 50 95 210 0
## 2 FES 33cl Douala JDDS 234 436 526 0
## 3 FES 50cl Douala JDDS 0 0 0 0
## 4 FES 50cl x 15 Douala JDDS 0 0 0 0
## 5 FES Cans Douala JDDS 0 0 0 0
## 6 GES x 15 Douala JDDS 0 3 0 0
## 7 GES 65cl Douala JDDS 98 256 162 0
## 8 MG Douala JDDS 18 11 4 0
## 9 MG Cans Douala JDDS 0 0 0 0
## 10 SAT Douala JDDS 0 0 0 0
## 11 GHP Douala JDDS 0 0 0 0
## 12 HAR 60cl Douala JDDS 247 387 482 0
## 13 HAR 30cl Douala JDDS 2 1 1 0
## 14 WIN Douala JDDS 0 0 0 0
## 15 SMR Douala JDDS 0 0 0 0
## 16 SMB Douala JDDS 1 3 35 0
## 17 Orijin 65cl Douala JDDS 0 0 0 0
## 18 Orijin 60cl Douala JDDS 11 3 0 0
## 19 HAR 65cl Douala JDDS 0 0 0 0
## 20 SMIE Douala JDDS 28 56 76 0
## X25.Jan.17 X6.Feb.17 X12.fev17 X19.Fev17 X21Fev17 X28Fev17 X1.Mar.17
## 1 247 123 69 215 347 308 0
## 2 599 443 297 534 692 729 0
## 3 0 0 0 0 0 0 0
## 4 0 0 0 0 0 0 0
## 5 0 0 0 0 0 0 0
## 6 0 0 0 642 977 1133 0
## 7 14 300 338 453 7 5 0
## 8 0 0 0 0 57 0 0
## 9 0 0 0 0 0 0 0
## 10 0 0 0 0 0 0 0
## 11 0 0 0 0 0 0 0
## 12 768 539 338 299 366 488 0
## 13 1 1 2 1 1 7 0
## 14 0 0 0 0 0 0 0
## 15 0 0 0 0 0 0 0
## 16 0 0 10 0 0 0 0
## 17 0 0 0 0 0 0 0
## 18 0 0 0 45 979 927 0
## 19 0 0 0 0 0 0 0
## 20 67 67 134 32 43 74 0
## X8.Mar.17 X15.Mar.17 X21.Mar.17 X30.Mar.17 total
## 1 318 73 3 207 2055
## 2 622 608 445 494 5720
## 3 0 0 0 0 0
## 4 0 0 0 0 0
## 5 0 0 0 0 0
## 6 983 962 581 438 4700
## 7 0 1 1 1 1634
## 8 0 0 0 0 90
## 9 0 0 0 0 0
## 10 0 0 0 0 0
## 11 0 0 0 0 0
## 12 635 770 407 422 5319
## 13 1 1 0 2 19
## 14 0 0 0 0 0
## 15 0 0 0 0 0
## 16 0 0 0 0 49
## 17 0 0 0 0 0
## 18 665 573 372 398 3203
## 19 0 0 0 0 0
## 20 72 80 41 45 729
Pour repondre à notre premier probleme on peut aggreger le total des ventes en fonction des clients
ventes$Clients <- as.factor(ventes$Clients)
RapportG <- aggregate(total~Clients, ventes, sum)
A view of RapportG
RapportG
## Clients total
## 1 Atomic 9224
## 2 Bridia 772
## 3 Dreams 12677
## 4 Ets Gnepiba 2258
## 5 G3-Biz 2332
## 6 JDDS 23518
## 7 JIPEDIS 3798
## 8 Magne R 2207
## 9 MAND CO 3140
## 10 MGC 1625
## 11 Nealiko CMR 7413
## 12 Obala 2711
## 13 Oumarou 5387
## 14 PRODIS 9283
## 15 SAGEL Negoce 5392
## 16 SIEGA 1030
## 17 SOGEDICAM 1019
## 18 Spider 3688
## 19 STS 7080
## 20 TMG 3266
RapportG <- arrange(RapportG, desc(total))
RapportG
## Clients total
## 1 JDDS 23518
## 2 Dreams 12677
## 3 PRODIS 9283
## 4 Atomic 9224
## 5 Nealiko CMR 7413
## 6 STS 7080
## 7 SAGEL Negoce 5392
## 8 Oumarou 5387
## 9 JIPEDIS 3798
## 10 Spider 3688
## 11 TMG 3266
## 12 MAND CO 3140
## 13 Obala 2711
## 14 G3-Biz 2332
## 15 Ets Gnepiba 2258
## 16 Magne R 2207
## 17 MGC 1625
## 18 SIEGA 1030
## 19 SOGEDICAM 1019
## 20 Bridia 772
RapportG <- mutate(RapportG, poids=total/sum(total))
RapportG
## Clients total poids
## 1 JDDS 23518 0.218122797
## 2 Dreams 12677 0.117575589
## 3 PRODIS 9283 0.086097199
## 4 Atomic 9224 0.085549991
## 5 Nealiko CMR 7413 0.068753478
## 6 STS 7080 0.065664997
## 7 SAGEL Negoce 5392 0.050009275
## 8 Oumarou 5387 0.049962901
## 9 JIPEDIS 3798 0.035225376
## 10 Spider 3688 0.034205157
## 11 TMG 3266 0.030291226
## 12 MAND CO 3140 0.029122612
## 13 Obala 2711 0.025143758
## 14 G3-Biz 2332 0.021628640
## 15 Ets Gnepiba 2258 0.020942311
## 16 Magne R 2207 0.020469301
## 17 MGC 1625 0.015071415
## 18 SIEGA 1030 0.009552959
## 19 SOGEDICAM 1019 0.009450937
## 20 Bridia 772 0.007160082
RapportG <- merge(RapportG, objectifs[,c(1,5)], by="Clients")
RapportG <- arrange(RapportG, desc(total))
RapportG
## Clients total poids Objectifs.Premier.Trimestre.2017
## 1 JDDS 23518 0.218122797 26000
## 2 Dreams 12677 0.117575589 13400
## 3 PRODIS 9283 0.086097199 11500
## 4 Atomic 9224 0.085549991 9500
## 5 Nealiko CMR 7413 0.068753478 9000
## 6 STS 7080 0.065664997 8400
## 7 SAGEL Negoce 5392 0.050009275 5700
## 8 Oumarou 5387 0.049962901 6800
## 9 JIPEDIS 3798 0.035225376 4300
## 10 Spider 3688 0.034205157 3800
## 11 TMG 3266 0.030291226 2600
## 12 MAND CO 3140 0.029122612 4600
## 13 Obala 2711 0.025143758 2700
## 14 G3-Biz 2332 0.021628640 2300
## 15 Ets Gnepiba 2258 0.020942311 2800
## 16 Magne R 2207 0.020469301 2600
## 17 MGC 1625 0.015071415 1500
## 18 SIEGA 1030 0.009552959 990
## 19 SOGEDICAM 1019 0.009450937 1300
## 20 Bridia 772 0.007160082 750
RapportG <- mutate(RapportG, PourcReal=(total/Objectifs.Premier.Trimestre.2017)*100)
RapportG
## Clients total poids Objectifs.Premier.Trimestre.2017
## 1 JDDS 23518 0.218122797 26000
## 2 Dreams 12677 0.117575589 13400
## 3 PRODIS 9283 0.086097199 11500
## 4 Atomic 9224 0.085549991 9500
## 5 Nealiko CMR 7413 0.068753478 9000
## 6 STS 7080 0.065664997 8400
## 7 SAGEL Negoce 5392 0.050009275 5700
## 8 Oumarou 5387 0.049962901 6800
## 9 JIPEDIS 3798 0.035225376 4300
## 10 Spider 3688 0.034205157 3800
## 11 TMG 3266 0.030291226 2600
## 12 MAND CO 3140 0.029122612 4600
## 13 Obala 2711 0.025143758 2700
## 14 G3-Biz 2332 0.021628640 2300
## 15 Ets Gnepiba 2258 0.020942311 2800
## 16 Magne R 2207 0.020469301 2600
## 17 MGC 1625 0.015071415 1500
## 18 SIEGA 1030 0.009552959 990
## 19 SOGEDICAM 1019 0.009450937 1300
## 20 Bridia 772 0.007160082 750
## PourcReal
## 1 90.45385
## 2 94.60448
## 3 80.72174
## 4 97.09474
## 5 82.36667
## 6 84.28571
## 7 94.59649
## 8 79.22059
## 9 88.32558
## 10 97.05263
## 11 125.61538
## 12 68.26087
## 13 100.40741
## 14 101.39130
## 15 80.64286
## 16 84.88462
## 17 108.33333
## 18 104.04040
## 19 78.38462
## 20 102.93333
Exportation de données en csv
write.csv2(RapportG, file = "Rapport General.csv")
write.csv2(objectifs, file = "objectifsclean.csv")
write.csv2(ventes, file = "venteclean.csv")
write.csv2(stocks, file = "stocksClean.csv")
Exportation de Rapport general en fichier excel
library("xlsx")
write.xlsx(RapportG, file = "Rapport General.xlsx", sheetName="RapportG", append=FALSE)
1.Présenter sur un tableau appelée « Rapport Par mois » les ventes par mois (Janvier, Février et Mars) et par clients pour le premier trimestre 2017
for (i in 1:nrow(ventes)){
ventes$TotalJan[i] <- sum(ventes[i,4:8])
ventes$TotalFev[i] <- sum(ventes[i,9:13])
ventes$TotalMar[i] <- sum(ventes[i,14:18])
}
RapportMoisJan <- aggregate(TotalJan~Clients, ventes, sum)
RapportMoisFev <- aggregate(TotalFev~Clients, ventes, sum)
RapportMoisMar <- aggregate(TotalMar~Clients, ventes, sum)
RapportMoisJan
## Clients TotalJan
## 1 Atomic 3754
## 2 Bridia 191
## 3 Dreams 4122
## 4 Ets Gnepiba 683
## 5 G3-Biz 639
## 6 JDDS 5132
## 7 JIPEDIS 596
## 8 Magne R 968
## 9 MAND CO 923
## 10 MGC 657
## 11 Nealiko CMR 2207
## 12 Obala 952
## 13 Oumarou 1910
## 14 PRODIS 1127
## 15 SAGEL Negoce 621
## 16 SIEGA 480
## 17 SOGEDICAM 324
## 18 Spider 1288
## 19 STS 2218
## 20 TMG 399
RapportMois <- merge(RapportMoisJan, RapportMoisFev, by='Clients')
RapportMois <- merge(RapportMois, RapportMoisMar, by='Clients')
RapportMois
## Clients TotalJan TotalFev TotalMar
## 1 Atomic 3754 4432 2141
## 2 Bridia 191 286 571
## 3 Dreams 4122 5684 4626
## 4 Ets Gnepiba 683 1176 1085
## 5 G3-Biz 639 1113 971
## 6 JDDS 5132 12022 10221
## 7 JIPEDIS 596 2143 1581
## 8 Magne R 968 866 595
## 9 MAND CO 923 1626 1105
## 10 MGC 657 737 384
## 11 Nealiko CMR 2207 3247 3552
## 12 Obala 952 1318 694
## 13 Oumarou 1910 2662 1399
## 14 PRODIS 1127 5777 4004
## 15 SAGEL Negoce 621 3492 2290
## 16 SIEGA 480 386 286
## 17 SOGEDICAM 324 480 393
## 18 Spider 1288 2029 652
## 19 STS 2218 3702 2368
## 20 TMG 399 2499 852
2.Créer des colonnes additionnelles appelées « Objectifs Mois » et à l’aide d’une formule Excel renseigner les objectifs de chaque clients pour les mois de Janvier, Février et Mars
RapportMois <- merge(RapportMois, objectifs)
RapportMois
## Clients TotalJan TotalFev TotalMar Janvier Fevrier Mars
## 1 Atomic 3754 4432 2141 2500 4000 3000
## 2 Bridia 191 286 571 150 200 400
## 3 Dreams 4122 5684 4626 4200 5200 4000
## 4 Ets Gnepiba 683 1176 1085 500 1100 1200
## 5 G3-Biz 639 1113 971 500 800 1000
## 6 JDDS 5132 12022 10221 7000 9000 10000
## 7 JIPEDIS 596 2143 1581 1000 1300 2000
## 8 Magne R 968 866 595 800 900 900
## 9 MAND CO 923 1626 1105 1000 1800 1800
## 10 MGC 657 737 384 500 700 300
## 11 Nealiko CMR 2207 3247 3552 2000 3000 4000
## 12 Obala 952 1318 694 800 1200 700
## 13 Oumarou 1910 2662 1399 1800 2500 2500
## 14 PRODIS 1127 5777 4004 2000 4500 5000
## 15 SAGEL Negoce 621 3492 2290 700 3000 2000
## 16 SIEGA 480 386 286 400 300 290
## 17 SOGEDICAM 324 480 393 400 500 400
## 18 Spider 1288 2029 652 1000 2000 800
## 19 STS 2218 3702 2368 2200 2800 3400
## 20 TMG 399 2499 852 400 1000 1200
## Objectifs.Premier.Trimestre.2017
## 1 9500
## 2 750
## 3 13400
## 4 2800
## 5 2300
## 6 26000
## 7 4300
## 8 2600
## 9 4600
## 10 1500
## 11 9000
## 12 2700
## 13 6800
## 14 11500
## 15 5700
## 16 990
## 17 1300
## 18 3800
## 19 8400
## 20 2600
Renomons nos varibles
RapportMois <- rename(RapportMois, ObjectifJan=Janvier,ObjectifFev=Fevrier,ObjectifMar=Mars )
RapportMois
## Clients TotalJan TotalFev TotalMar ObjectifJan ObjectifFev
## 1 Atomic 3754 4432 2141 2500 4000
## 2 Bridia 191 286 571 150 200
## 3 Dreams 4122 5684 4626 4200 5200
## 4 Ets Gnepiba 683 1176 1085 500 1100
## 5 G3-Biz 639 1113 971 500 800
## 6 JDDS 5132 12022 10221 7000 9000
## 7 JIPEDIS 596 2143 1581 1000 1300
## 8 Magne R 968 866 595 800 900
## 9 MAND CO 923 1626 1105 1000 1800
## 10 MGC 657 737 384 500 700
## 11 Nealiko CMR 2207 3247 3552 2000 3000
## 12 Obala 952 1318 694 800 1200
## 13 Oumarou 1910 2662 1399 1800 2500
## 14 PRODIS 1127 5777 4004 2000 4500
## 15 SAGEL Negoce 621 3492 2290 700 3000
## 16 SIEGA 480 386 286 400 300
## 17 SOGEDICAM 324 480 393 400 500
## 18 Spider 1288 2029 652 1000 2000
## 19 STS 2218 3702 2368 2200 2800
## 20 TMG 399 2499 852 400 1000
## ObjectifMar Objectifs.Premier.Trimestre.2017
## 1 3000 9500
## 2 400 750
## 3 4000 13400
## 4 1200 2800
## 5 1000 2300
## 6 10000 26000
## 7 2000 4300
## 8 900 2600
## 9 1800 4600
## 10 300 1500
## 11 4000 9000
## 12 700 2700
## 13 2500 6800
## 14 5000 11500
## 15 2000 5700
## 16 290 990
## 17 400 1300
## 18 800 3800
## 19 3400 8400
## 20 1200 2600
3.Créer une colonne appelée « Poids » et indiquer le poids des ventes de chaque client sur les ventes totales pour chaque mois
RapportMois <- mutate(RapportMois, poidsJan=(TotalJan/sum(TotalJan)))
RapportMois <- mutate(RapportMois, poidsFev=(TotalFev/sum(TotalFev)))
RapportMois <- mutate(RapportMois, poidsMar=(TotalMar/sum(TotalMar)))
RapportMois
## Clients TotalJan TotalFev TotalMar ObjectifJan ObjectifFev
## 1 Atomic 3754 4432 2141 2500 4000
## 2 Bridia 191 286 571 150 200
## 3 Dreams 4122 5684 4626 4200 5200
## 4 Ets Gnepiba 683 1176 1085 500 1100
## 5 G3-Biz 639 1113 971 500 800
## 6 JDDS 5132 12022 10221 7000 9000
## 7 JIPEDIS 596 2143 1581 1000 1300
## 8 Magne R 968 866 595 800 900
## 9 MAND CO 923 1626 1105 1000 1800
## 10 MGC 657 737 384 500 700
## 11 Nealiko CMR 2207 3247 3552 2000 3000
## 12 Obala 952 1318 694 800 1200
## 13 Oumarou 1910 2662 1399 1800 2500
## 14 PRODIS 1127 5777 4004 2000 4500
## 15 SAGEL Negoce 621 3492 2290 700 3000
## 16 SIEGA 480 386 286 400 300
## 17 SOGEDICAM 324 480 393 400 500
## 18 Spider 1288 2029 652 1000 2000
## 19 STS 2218 3702 2368 2200 2800
## 20 TMG 399 2499 852 400 1000
## ObjectifMar Objectifs.Premier.Trimestre.2017 poidsJan poidsFev
## 1 3000 9500 0.128601281 0.079601990
## 2 400 750 0.006543113 0.005136771
## 3 4000 13400 0.141207907 0.102088834
## 4 1200 2800 0.023397623 0.021121828
## 5 1000 2300 0.021890309 0.019990301
## 6 10000 26000 0.175807612 0.215923990
## 7 2000 4300 0.020417252 0.038489861
## 8 900 2600 0.033160906 0.015553999
## 9 1800 4600 0.031619335 0.029204160
## 10 300 1500 0.022506937 0.013237064
## 11 4000 9000 0.075605495 0.058318516
## 12 700 2700 0.032612792 0.023672252
## 13 2500 6800 0.065431126 0.047811484
## 14 5000 11500 0.038607790 0.103759182
## 15 2000 5700 0.021273680 0.062718896
## 16 290 990 0.016443424 0.006932845
## 17 400 1300 0.011099311 0.008621154
## 18 800 3800 0.044123189 0.036442337
## 19 3400 8400 0.075982323 0.066490651
## 20 1200 2600 0.013668596 0.044883884
## poidsMar
## 1 0.053834549
## 2 0.014357556
## 3 0.116318833
## 4 0.027281871
## 5 0.024415388
## 6 0.257002766
## 7 0.039753583
## 8 0.014961026
## 9 0.027784762
## 10 0.009655519
## 11 0.089313553
## 12 0.017450339
## 13 0.035177269
## 14 0.100678904
## 15 0.057581091
## 16 0.007191350
## 17 0.009881820
## 18 0.016394267
## 19 0.059542369
## 20 0.021423183
RapportMois[which(RapportMois$TotalJan>=RapportMois$ObjectifJan),]
## Clients TotalJan TotalFev TotalMar ObjectifJan ObjectifFev
## 1 Atomic 3754 4432 2141 2500 4000
## 2 Bridia 191 286 571 150 200
## 4 Ets Gnepiba 683 1176 1085 500 1100
## 5 G3-Biz 639 1113 971 500 800
## 8 Magne R 968 866 595 800 900
## 10 MGC 657 737 384 500 700
## 11 Nealiko CMR 2207 3247 3552 2000 3000
## 12 Obala 952 1318 694 800 1200
## 13 Oumarou 1910 2662 1399 1800 2500
## 16 SIEGA 480 386 286 400 300
## 18 Spider 1288 2029 652 1000 2000
## 19 STS 2218 3702 2368 2200 2800
## ObjectifMar Objectifs.Premier.Trimestre.2017 poidsJan poidsFev
## 1 3000 9500 0.128601281 0.079601990
## 2 400 750 0.006543113 0.005136771
## 4 1200 2800 0.023397623 0.021121828
## 5 1000 2300 0.021890309 0.019990301
## 8 900 2600 0.033160906 0.015553999
## 10 300 1500 0.022506937 0.013237064
## 11 4000 9000 0.075605495 0.058318516
## 12 700 2700 0.032612792 0.023672252
## 13 2500 6800 0.065431126 0.047811484
## 16 290 990 0.016443424 0.006932845
## 18 800 3800 0.044123189 0.036442337
## 19 3400 8400 0.075982323 0.066490651
## poidsMar
## 1 0.053834549
## 2 0.014357556
## 4 0.027281871
## 5 0.024415388
## 8 0.014961026
## 10 0.009655519
## 11 0.089313553
## 12 0.017450339
## 13 0.035177269
## 16 0.007191350
## 18 0.016394267
## 19 0.059542369
On les voit sur le tableau ci dessus, il s’agit du clients
Atomic
Bridia
Ets Gnepiba
G3-Biz
Magne R
MGC
Nealiko CMR
Obala
Oumarou
SIEGA
RapportMois[which(RapportMois$TotalFev<=RapportMois$ObjectifFev),]
## Clients TotalJan TotalFev TotalMar ObjectifJan ObjectifFev
## 8 Magne R 968 866 595 800 900
## 9 MAND CO 923 1626 1105 1000 1800
## 17 SOGEDICAM 324 480 393 400 500
## ObjectifMar Objectifs.Premier.Trimestre.2017 poidsJan poidsFev
## 8 900 2600 0.03316091 0.015553999
## 9 1800 4600 0.03161933 0.029204160
## 17 400 1300 0.01109931 0.008621154
## poidsMar
## 8 0.01496103
## 9 0.02778476
## 17 0.00988182
iCI ils sont trois clients à n’avoir pas atteint les objectifs de Fevrier,
Il s’agit de:
Magne R
Mand Co
SODEDICAM
ventes$Article <- as.factor(ventes$Article)
ArticleRegionJan <- aggregate(ventes$TotalJan~Article,ventes,sum)
ArticleRegionFev <- aggregate(ventes$TotalFev~Article,ventes, sum)
ArticleRegionMar <- aggregate(ventes$TotalMar~Article,ventes, sum)
ArticleRegion0 <- merge(ArticleRegionJan, ArticleRegionFev)
ArticleRegion <- merge(ArticleRegion0, ArticleRegionMar)
ArticleRegion
## Article ventes$TotalJan ventes$TotalFev ventes$TotalMar
## 1 FES 33cl 10183 16586 10329
## 2 FES 50cl 0 0 0
## 3 FES 50cl x 15 0 0 0
## 4 FES 65cl 3294 7050 2995
## 5 FES Cans 0 0 0
## 6 GES 65cl 1993 2945 1048
## 7 GES x 12 135 126 116
## 8 GES x 15 3580 9184 6761
## 9 GHP 0 0 0
## 10 HAR 30cl 68 65 34
## 11 HAR 60cl 6249 8347 6492
## 12 HAR 65cl 0 0 0
## 13 MG 1221 2062 827
## 14 MG Cans 0 0 0
## 15 Orijin 30cl 0 0 0
## 16 Orijin 60cl 1485 6378 7837
## 17 Orijin 65cl 1 1400 2452
## 18 SAT 0 0 0
## 19 SMB 397 750 317
## 20 SMIE 585 784 562
## 21 SMR 0 0 0
## 22 WIN 0 0 0
write.xlsx(ArticleRegion, file = "Article Par Region.xlsx", sheetName="ArticleParRegions", append=FALSE)
2.Créer une colonne appelée « Vente mensuelle par Article » et calculer la moyenne mensuelle des ventes par article
for (i in 1:nrow(ArticleRegion)){
ArticleRegion$venteMslleArticle[i] <- mean(as.numeric(ArticleRegion[i,2:4]))
}
ArticleRegion
## Article ventes$TotalJan ventes$TotalFev ventes$TotalMar
## 1 FES 33cl 10183 16586 10329
## 2 FES 50cl 0 0 0
## 3 FES 50cl x 15 0 0 0
## 4 FES 65cl 3294 7050 2995
## 5 FES Cans 0 0 0
## 6 GES 65cl 1993 2945 1048
## 7 GES x 12 135 126 116
## 8 GES x 15 3580 9184 6761
## 9 GHP 0 0 0
## 10 HAR 30cl 68 65 34
## 11 HAR 60cl 6249 8347 6492
## 12 HAR 65cl 0 0 0
## 13 MG 1221 2062 827
## 14 MG Cans 0 0 0
## 15 Orijin 30cl 0 0 0
## 16 Orijin 60cl 1485 6378 7837
## 17 Orijin 65cl 1 1400 2452
## 18 SAT 0 0 0
## 19 SMB 397 750 317
## 20 SMIE 585 784 562
## 21 SMR 0 0 0
## 22 WIN 0 0 0
## venteMslleArticle
## 1 12366.00000
## 2 0.00000
## 3 0.00000
## 4 4446.33333
## 5 0.00000
## 6 1995.33333
## 7 125.66667
## 8 6508.33333
## 9 0.00000
## 10 55.66667
## 11 7029.33333
## 12 0.00000
## 13 1370.00000
## 14 0.00000
## 15 0.00000
## 16 5233.33333
## 17 1284.33333
## 18 0.00000
## 19 488.00000
## 20 643.66667
## 21 0.00000
## 22 0.00000
3.Créer une colonne appelée « Stock » et indiquer à l’ aide d’une formule Excel les stocks par article au 31 Mars 2017
head(stocks,20)
## Article Region Clients X1.Jan.17 X31.Jan.17 X28.Feb.17
## 1 FES 65cl Douala JDDS 278 170 125
## 2 FES 33cl Douala JDDS 1886 1715 1939
## 3 FES 50cl Douala JDDS 0 0 0
## 4 FES 50cl x 15 Douala JDDS 1 1 1
## 5 FES Cans Douala JDDS 0 0 0
## 6 GES x 15 Douala JDDS 770 1165 1100
## 7 GES 65cl Douala JDDS 183 66 61
## 8 MG Douala JDDS 3 1 0
## 9 MG Cans Douala JDDS 0 0 0
## 10 SAT Douala JDDS 0 0 0
## 11 GHP Douala JDDS 0 0 0
## 12 HAR 60cl Douala JDDS 1131 783 1001
## 13 HAR 30cl Douala JDDS 44 44 43
## 14 WIN Douala JDDS 0 0 0
## 15 SMR Douala JDDS 0 0 0
## 16 SMB Douala JDDS 1 5 6
## 17 Orijin 65cl Douala JDDS 0 0 0
## 18 Orijin 60cl Douala JDDS 30 29 580
## 19 HAR 65cl Douala JDDS 0 0 0
## 20 SMIE Douala JDDS 314 271 245
## X31.Mar.17
## 1 21
## 2 1712
## 3 0
## 4 1
## 5 0
## 6 763
## 7 63
## 8 9
## 9 0
## 10 0
## 11 0
## 12 1025
## 13 42
## 14 0
## 15 0
## 16 6
## 17 0
## 18 275
## 19 0
## 20 226
Dressons un tableau de stocks par article au 31 Mars 2017. Nous le nommons Colstoks31Mar
stocks$Article <- as.factor(stocks$Article)
ColStoks31Mar <- aggregate(X31.Mar.17~Article, stocks, sum)
ColStoks31Mar <- rename(ColStoks31Mar, stock=X31.Mar.17)
ColStoks31Mar
## Article stock
## 1 FES 33cl 5184
## 2 FES 50cl 0
## 3 FES 50cl x 15 1
## 4 FES 65cl 807
## 5 FES Cans 0
## 6 GES 65cl 944
## 7 GES x 12 42
## 8 GES x 15 2846
## 9 GHP 0
## 10 HAR 30cl 402
## 11 HAR 60cl 5042
## 12 HAR 65cl 2
## 13 MG 1332
## 14 MG Cans 18
## 15 Orijin 30cl 0
## 16 Orijin 60cl 2696
## 17 Orijin 65cl 226
## 18 SAT 0
## 19 SMB 553
## 20 SMIE 495
## 21 SMR 0
## 22 WIN 0
Il est aisé de voir rapidement que certains produits sont en manques tandis que d’autres sont encore en grande quantité dans le stocks (FES 33cl, GES x 15, FES 65cl GES 65cl)
df <- ColStoks31Mar
df$Article <- gsub(" ","",as.character(df$Article))
df2 <- ArticleRegion
df2$Article <- gsub(" ","",as.character(df2$Article))
Article_Region <- merge(df,df2, by="Article")
Article_Region
## Article stock ventes$TotalJan ventes$TotalFev ventes$TotalMar
## 1 FES33cl 5184 10183 16586 10329
## 2 FES50cl 0 0 0 0
## 3 FES50clx15 1 0 0 0
## 4 FES65cl 807 3294 7050 2995
## 5 FESCans 0 0 0 0
## 6 GES65cl 944 1993 2945 1048
## 7 GESx12 42 135 126 116
## 8 GESx15 2846 3580 9184 6761
## 9 GHP 0 0 0 0
## 10 HAR30cl 402 68 65 34
## 11 HAR60cl 5042 6249 8347 6492
## 12 HAR65cl 2 0 0 0
## 13 MG 1332 1221 2062 827
## 14 MGCans 18 0 0 0
## 15 Orijin30cl 0 0 0 0
## 16 Orijin60cl 2696 1485 6378 7837
## 17 Orijin65cl 226 1 1400 2452
## 18 SAT 0 0 0 0
## 19 SMB 553 397 750 317
## 20 SMIE 495 585 784 562
## 21 SMR 0 0 0 0
## 22 WIN 0 0 0 0
## venteMslleArticle
## 1 12366.00000
## 2 0.00000
## 3 0.00000
## 4 4446.33333
## 5 0.00000
## 6 1995.33333
## 7 125.66667
## 8 6508.33333
## 9 0.00000
## 10 55.66667
## 11 7029.33333
## 12 0.00000
## 13 1370.00000
## 14 0.00000
## 15 0.00000
## 16 5233.33333
## 17 1284.33333
## 18 0.00000
## 19 488.00000
## 20 643.66667
## 21 0.00000
## 22 0.00000
Article_Region <- mutate(Article_Region, venteMoyJour = venteMslleArticle/26)
Article_Region
## Article stock ventes$TotalJan ventes$TotalFev ventes$TotalMar
## 1 FES33cl 5184 10183 16586 10329
## 2 FES50cl 0 0 0 0
## 3 FES50clx15 1 0 0 0
## 4 FES65cl 807 3294 7050 2995
## 5 FESCans 0 0 0 0
## 6 GES65cl 944 1993 2945 1048
## 7 GESx12 42 135 126 116
## 8 GESx15 2846 3580 9184 6761
## 9 GHP 0 0 0 0
## 10 HAR30cl 402 68 65 34
## 11 HAR60cl 5042 6249 8347 6492
## 12 HAR65cl 2 0 0 0
## 13 MG 1332 1221 2062 827
## 14 MGCans 18 0 0 0
## 15 Orijin30cl 0 0 0 0
## 16 Orijin60cl 2696 1485 6378 7837
## 17 Orijin65cl 226 1 1400 2452
## 18 SAT 0 0 0 0
## 19 SMB 553 397 750 317
## 20 SMIE 495 585 784 562
## 21 SMR 0 0 0 0
## 22 WIN 0 0 0 0
## venteMslleArticle venteMoyJour
## 1 12366.00000 475.615385
## 2 0.00000 0.000000
## 3 0.00000 0.000000
## 4 4446.33333 171.012821
## 5 0.00000 0.000000
## 6 1995.33333 76.743590
## 7 125.66667 4.833333
## 8 6508.33333 250.320513
## 9 0.00000 0.000000
## 10 55.66667 2.141026
## 11 7029.33333 270.358974
## 12 0.00000 0.000000
## 13 1370.00000 52.692308
## 14 0.00000 0.000000
## 15 0.00000 0.000000
## 16 5233.33333 201.282051
## 17 1284.33333 49.397436
## 18 0.00000 0.000000
## 19 488.00000 18.769231
## 20 643.66667 24.756410
## 21 0.00000 0.000000
## 22 0.00000 0.000000
( courvertureJournArticle= )
Article_Region <- mutate(Article_Region, CouvJourArticle = stock/venteMoyJour)
Article_Region
## Article stock ventes$TotalJan ventes$TotalFev ventes$TotalMar
## 1 FES33cl 5184 10183 16586 10329
## 2 FES50cl 0 0 0 0
## 3 FES50clx15 1 0 0 0
## 4 FES65cl 807 3294 7050 2995
## 5 FESCans 0 0 0 0
## 6 GES65cl 944 1993 2945 1048
## 7 GESx12 42 135 126 116
## 8 GESx15 2846 3580 9184 6761
## 9 GHP 0 0 0 0
## 10 HAR30cl 402 68 65 34
## 11 HAR60cl 5042 6249 8347 6492
## 12 HAR65cl 2 0 0 0
## 13 MG 1332 1221 2062 827
## 14 MGCans 18 0 0 0
## 15 Orijin30cl 0 0 0 0
## 16 Orijin60cl 2696 1485 6378 7837
## 17 Orijin65cl 226 1 1400 2452
## 18 SAT 0 0 0 0
## 19 SMB 553 397 750 317
## 20 SMIE 495 585 784 562
## 21 SMR 0 0 0 0
## 22 WIN 0 0 0 0
## venteMslleArticle venteMoyJour CouvJourArticle
## 1 12366.00000 475.615385 10.899563
## 2 0.00000 0.000000 NaN
## 3 0.00000 0.000000 Inf
## 4 4446.33333 171.012821 4.718944
## 5 0.00000 0.000000 NaN
## 6 1995.33333 76.743590 12.300702
## 7 125.66667 4.833333 8.689655
## 8 6508.33333 250.320513 11.369424
## 9 0.00000 0.000000 NaN
## 10 55.66667 2.141026 187.760479
## 11 7029.33333 270.358974 18.649279
## 12 0.00000 0.000000 Inf
## 13 1370.00000 52.692308 25.278832
## 14 0.00000 0.000000 Inf
## 15 0.00000 0.000000 NaN
## 16 5233.33333 201.282051 13.394140
## 17 1284.33333 49.397436 4.575136
## 18 0.00000 0.000000 NaN
## 19 488.00000 18.769231 29.463115
## 20 643.66667 24.756410 19.994821
## 21 0.00000 0.000000 NaN
## 22 0.00000 0.000000 NaN
On a des NaN et des Inf. On peut affiner l’analyse et comprendre qu’il s’agit des divisions par zero
Sauvegardons cette table
write.xlsx(Article_Region, file = "Article_Region.xlsx", sheetName="Article.Regions", append=FALSE)
Article_Region[which(Article_Region$CouvJourArticle>50),]
## Article stock ventes$TotalJan ventes$TotalFev ventes$TotalMar
## 3 FES50clx15 1 0 0 0
## 10 HAR30cl 402 68 65 34
## 12 HAR65cl 2 0 0 0
## 14 MGCans 18 0 0 0
## venteMslleArticle venteMoyJour CouvJourArticle
## 3 0.00000 0.000000 Inf
## 10 55.66667 2.141026 187.7605
## 12 0.00000 0.000000 Inf
## 14 0.00000 0.000000 Inf
Au Fond il n’y a que l’article HAR 30cl qui a une couverture journalière superieure à 50 jours
## Presentation pour la reunion
datagraph <- filter(Article_Region, Article=="FES65cl"|Article=="FES33cl"|Article=="GESx15")
datagraph
## Article stock ventes$TotalJan ventes$TotalFev ventes$TotalMar
## 1 FES33cl 5184 10183 16586 10329
## 2 FES65cl 807 3294 7050 2995
## 3 GESx15 2846 3580 9184 6761
## venteMslleArticle venteMoyJour CouvJourArticle
## 1 12366.000 475.6154 10.899563
## 2 4446.333 171.0128 4.718944
## 3 6508.333 250.3205 11.369424
library(tidyr)
datagraph1 <- datagraph[,1:5]
names(datagraph1) <- c("Article","stock", "01Jan", "02Fev", "03Mar")
D <- gather(datagraph1, Mois, count, -Article, -stock)
D
## Article stock Mois count
## 1 FES33cl 5184 01Jan 10183
## 2 FES65cl 807 01Jan 3294
## 3 GESx15 2846 01Jan 3580
## 4 FES33cl 5184 02Fev 16586
## 5 FES65cl 807 02Fev 7050
## 6 GESx15 2846 02Fev 9184
## 7 FES33cl 5184 03Mar 10329
## 8 FES65cl 807 03Mar 2995
## 9 GESx15 2846 03Mar 6761
library(ggplot2)
g <- ggplot(D, aes(x=factor(Mois), y=count))
g+geom_bar(stat="identity", color="red", fill="steelblue") + facet_grid(.~ Article) +
labs(x="Mois", y=expression("Total Vente Mois"))+
ggtitle("Presentation ventes Mois par acticle FES 33cl, 65cl et GES x15")
FES 65cl et GES x 15 ont une même moyenne de ventes
Fevrier apparait comme mois où on vend plus
Agregeonsles stocks par article
D2 <- aggregate(stock~Article, D, sum)
g <- ggplot(D2, aes(x=factor(Article), y=stock))
g+geom_bar(stat="identity", color="red", fill="steelblue")+
ggtitle("Etat des stoks par acticle au 31Mars FES 33cl, 65cl et GES x15")