Vous êtes sur la page 1sur 8

TP1

December 17, 2020

1 Analyse de donnees: TP 1
1.1 Question 1: Spécifier le répertoire de travail

[3]: setwd("C:/Users/yassi/OneDrive/Bureau/TPs/Rlang")

[4]: getwd()

’C:/Users/yassi/OneDrive/Bureau/TPs/Rlang’

1.2 Question 2: Charger le fichier de données « AchatClients.csv »

[5]: data <- read.csv2(file="./TP1/AchatClients.csv", header=TRUE, sep="\t", dec=".",␣


,→fill=TRUE)

[6]: data

A data.frame: 2447 × 22
[7]: str(data)

'data.frame': 2447 obs. of 22 variables:


$ TIC_ENT_ID : int 17949252 12817341 13575108 19135477 9170032
8754299 19800655 21419546 13201363 16831956 ...
$ NOMPRENOM : chr "AUCLAIR ALEXANDRA" "AMABLE NICOLAS" "AMIS
REBECCA" "AMICHAUD CATHERINE" ...
$ ADRESSE : chr "180 RUE DES ECUREUILS " "76 AV CHEVREUL " "LE
HAUT CARABOUET " "22 RUE CHARLET " ...
$ COORDCLT : chr "AUCLAIR ALEXANDRA MME 180 RUE DES ECUREUILS
POULX" "AMABLE NICOLAS MR 76 AV CHEVREUL ASNIERES SUR SEINE" "AMIS REBECCA MME
LE HAUT CARABOUET TINTENIAC" "AMICHAUD CATHERINE MME 22 RUE CHARLET BOURGES"
...
$ CMD_CLT_CODE : chr "T274632" "T618825" "TA30682" "T161220" ...
$ MAG_CMD_CODE : chr "752" "895" "905" "941" ...
$ DATE_MAJ_BATCH : chr "2014-05-08" "2013-03-24" "2013-06-08"
"2014-08-30" ...
$ CODE_RAY : chr "7" "6" "P" "7" ...
$ CODE_PUB : chr "" NA "" NA ...

1
$ TIC_ENT_CIV : chr "MME" "MR" "MME" "MME" ...
$ CP_ID : int 37645 37609 39117 36420 36724 34161 38075
35932 34330 37004 ...
$ CLT_FACTU_QTE_LIVR : int 1 1 1 1 1 1 1 1 1 1 ...
$ TIC_ENT_N_CART_PAIE : num 3.31e+15 NA NA NA NA ...
$ PRIX_VENTE_ETIQ : num 40 289 0 14 159 ...
$ CLT_FACTU_PUV : num 39.99 289 0 9.79 159 ...
$ CLT_FACTU_MNT_FACTU_TTC : num 39.99 286.85 0 9.79 159 ...
$ MNT_LIGNE_RED_F02223_TTC: num 38.18 286.85 0 9.79 159 ...
$ ID_CDE_MAGENTO : int NA NA NA NA NA NA NA NA NA NA ...
$ NEWSLETTRE : chr NA NA NA NA ...
$ ARTREF_CODE : chr "77746200" "77722074" "F840" "77739607" ...
$ CODE_FAM : chr "96" "69" "23" "80" ...
$ CODE_SOU_FAM : int 854 692 840 807 632 660 791 602 951 754 ...

[8]: ls()

’data’

1.3 Question 3: Explorer la structure des données

[9]: nrow(data)

2447
[10]: ncol(data)

22
[11]: dim(data)

1. 2447 2. 22
[12]: names(data)

1. ’TIC_ENT_ID’ 2. ’NOMPRENOM’ 3. ’ADRESSE’ 4. ’COORDCLT’ 5. ’CMD_CLT_CODE’


6. ’MAG_CMD_CODE’ 7. ’DATE_MAJ_BATCH’ 8. ’CODE_RAY’ 9. ’CODE_PUB’
10. ’TIC_ENT_CIV’ 11. ’CP_ID’ 12. ’CLT_FACTU_QTE_LIVR’ 13. ’TIC_ENT_N_CART_PAIE’
14. ’PRIX_VENTE_ETIQ’ 15. ’CLT_FACTU_PUV’ 16. ’CLT_FACTU_MNT_FACTU_TTC’
17. ’MNT_LIGNE_RED_F02223_TTC’ 18. ’ID_CDE_MAGENTO’ 19. ’NEWSLETTRE’
20. ’ARTREF_CODE’ 21. ’CODE_FAM’ 22. ’CODE_SOU_FAM’

1.4 Question 4: Construire le dictionnaire de données (compléter tableau ci-dessous).


Préciser le type de chaque variable. Identifier les variables qualitatives et celles
quantitatives.
A realiser au sein du pdf du TP1.

2
1.5 Question 5: Renommer les attributs (noms de colonnes) par les étiquettes in-
diquées dans le tableau ci-dessous

[13]: colnames(data) = c("NumTicket", "NomPrenom", "Addresse", "Client", "Commande",␣


,→"Magasin", "DateAchat", "Rayon", "ArticleEnPub", "Civilite", "CodePostal",␣

,→"Quantite", "Paie", "PrixSurEtiquette", "PrixUnitaire", "MontantAvReduction",␣

,→"MontantApReduction", "CodeWeb", "AbonneNewslettre", "Article", "Famille",␣

,→"SousFamille")

[14]: data

A data.frame: 2447 × 22
[15]: class(data$Rayon)

’character’
[16]: unique(data$Civilite)

1. ’MME’ 2. ’MR’ 3. ’ASS’ 4. ’SARL’ 5. ’MLLE’ 6. ’M&MME’ 7. ’M.’ 8. ’MLE’ 9. ” 10. ’STE’ 11. ’mr’
12. ’SCI’ 13. ’EURL’ 14. ’DR’ 15. ’M&M’ 16. ’mme’ 17. ’SA’

1.6 Question 6: Corriger les types des attributs


On corrigera juste “DateAchat” a titre d’exemple

[17]: data$DateAchat = as.Date(data$DateAchat)

[18]: class(data$DateAchat)

’Date’
[19]: head(data$DateAchat)

1. 2014-05-08 2. 2013-03-24 3. 2013-06-08 4. 2014-08-30 5. 2012-12-02 6. 2011-07-06


[20]: tail(data$DateAchat)

1. 2016-06-14 2. 2016-03-17 3. 2014-01-18 4. 2016-08-27 5. 2011-08-26 6. 2014-11-22


[21]: str(data)

'data.frame': 2447 obs. of 22 variables:


$ NumTicket : int 17949252 12817341 13575108 19135477 9170032 8754299
19800655 21419546 13201363 16831956 ...
$ NomPrenom : chr "AUCLAIR ALEXANDRA" "AMABLE NICOLAS" "AMIS REBECCA"
"AMICHAUD CATHERINE" ...
$ Addresse : chr "180 RUE DES ECUREUILS " "76 AV CHEVREUL " "LE HAUT
CARABOUET " "22 RUE CHARLET " ...
$ Client : chr "AUCLAIR ALEXANDRA MME 180 RUE DES ECUREUILS POULX"

3
"AMABLE NICOLAS MR 76 AV CHEVREUL ASNIERES SUR SEINE" "AMIS REBECCA MME LE HAUT
CARABOUET TINTENIAC" "AMICHAUD CATHERINE MME 22 RUE CHARLET BOURGES" ...
$ Commande : chr "T274632" "T618825" "TA30682" "T161220" ...
$ Magasin : chr "752" "895" "905" "941" ...
$ DateAchat : Date, format: "2014-05-08" "2013-03-24" ...
$ Rayon : chr "7" "6" "P" "7" ...
$ ArticleEnPub : chr "" NA "" NA ...
$ Civilite : chr "MME" "MR" "MME" "MME" ...
$ CodePostal : int 37645 37609 39117 36420 36724 34161 38075 35932
34330 37004 ...
$ Quantite : int 1 1 1 1 1 1 1 1 1 1 ...
$ Paie : num 3.31e+15 NA NA NA NA ...
$ PrixSurEtiquette : num 40 289 0 14 159 ...
$ PrixUnitaire : num 39.99 289 0 9.79 159 ...
$ MontantAvReduction: num 39.99 286.85 0 9.79 159 ...
$ MontantApReduction: num 38.18 286.85 0 9.79 159 ...
$ CodeWeb : int NA NA NA NA NA NA NA NA NA NA ...
$ AbonneNewslettre : chr NA NA NA NA ...
$ Article : chr "77746200" "77722074" "F840" "77739607" ...
$ Famille : chr "96" "69" "23" "80" ...
$ SousFamille : int 854 692 840 807 632 660 791 602 951 754 ...

[22]: summary(data)

NumTicket NomPrenom Addresse Client


Min. : 3095065 Length:2447 Length:2447 Length:2447
1st Qu.: 8661708 Class :character Class :character Class :character
Median :14273245 Mode :character Mode :character Mode :character
Mean :13993116
3rd Qu.:19155947
Max. :24055923

Commande Magasin DateAchat Rayon


Length:2447 Length:2447 Min. :2010-07-29 Length:2447
Class :character Class :character 1st Qu.:2012-04-21 Class :character
Mode :character Mode :character Median :2013-07-19 Mode :character
Mean :2013-07-23
3rd Qu.:2014-09-06
Max. :2016-09-02

ArticleEnPub Civilite CodePostal Quantite


Length:2447 Length:2447 Min. :34037 Min. :-12.000
Class :character Class :character 1st Qu.:35743 1st Qu.: 1.000
Mode :character Mode :character Median :37330 Median : 1.000
Mean :37452 Mean : 1.321
3rd Qu.:39218 3rd Qu.: 1.000
Max. :48361 Max. : 30.000

4
Paie PrixSurEtiquette PrixUnitaire MontantAvReduction
Min. :3.010e+15 Min. : 0.00 Min. :-177.70 Min. :-699.00
1st Qu.:3.444e+15 1st Qu.: 6.90 1st Qu.: 5.90 1st Qu.: 6.00
Median :3.811e+15 Median : 24.90 Median : 24.90 Median : 28.35
Mean :8.143e+17 Mean : 85.02 Mean : 80.28 Mean : 84.47
3rd Qu.:1.373e+16 3rd Qu.: 99.00 3rd Qu.: 95.00 3rd Qu.: 99.53
Max. :5.018e+18 Max. :1490.00 Max. :1495.00 Max. :1495.00
NA's :1601
MontantApReduction CodeWeb AbonneNewslettre Article
Min. :-699.00 Min. :6e+08 Length:2447 Length:2447
1st Qu.: 5.80 1st Qu.:6e+08 Class :character Class :character
Median : 25.23 Median :6e+08 Mode :character Mode :character
Mean : 83.43 Mean :6e+08
3rd Qu.: 99.00 3rd Qu.:6e+08
Max. :1495.00 Max. :6e+08
NA's :9 NA's :2441
Famille SousFamille
Length:2447 Min. : 22.0
Class :character 1st Qu.:642.0
Mode :character Median :695.0
Mean :674.1
3rd Qu.:766.0
Max. :999.0
NA's :38

1.7 Question 7: Afficher les informations liées au ticket numéro 13775904


[23]: select = data[data$NumTicket==13775904,]

[24]: nrow(select)

2
[25]: select

NumTicket NomPrenom Addresse Client


<int> <chr> <chr> <chr>
A data.frame: 2 × 22
2228 13775904 XL CUISINES 0000000000 XL CUISINES STE 0000000000 ARRAS
2232 13775904 XL CUISINES 0000000000 XL CUISINES STE 0000000000 ARRAS

[26]: select[1,]

NumTicket NomPrenom Addresse Client


A data.frame: 1 × 22 <int> <chr> <chr> <chr>
2228 13775904 XL CUISINES 0000000000 XL CUISINES STE 0000000000 ARRAS

[27]: select[1,2]

’XL CUISINES’

5
[28]: select[,1]

1. 13775904 2. 13775904
[29]: str(select)

'data.frame': 2 obs. of 22 variables:


$ NumTicket : int 13775904 13775904
$ NomPrenom : chr "XL CUISINES" "XL CUISINES"
$ Addresse : chr "0000000000 " "0000000000 "
$ Client : chr "XL CUISINES STE 0000000000 ARRAS" "XL CUISINES STE
0000000000 ARRAS"
$ Commande : chr "581982" "581982"
$ Magasin : chr "531" "531"
$ DateAchat : Date, format: "2013-05-22" "2013-05-22"
$ Rayon : chr "7" "7"
$ ArticleEnPub : chr "" ""
$ Civilite : chr "STE" "STE"
$ CodePostal : int 36377 36377
$ Quantite : int 1 1
$ Paie : num NA NA
$ PrixSurEtiquette : num 6.9 3.9
$ PrixUnitaire : num 6.9 3.9
$ MontantAvReduction: num 6.9 3.9
$ MontantApReduction: num 6.9 3.9
$ CodeWeb : int NA NA
$ AbonneNewslettre : chr NA NA
$ Article : chr "77727747" "77720165"
$ Famille : chr "75" "74"
$ SousFamille : int 750 761

1.8 Question 8: Afficher les informations d’achat du client « FETI »


[30]: select2 = data[data$NomPrenom=="FETI",]

[31]: nrow(select2)

1.9 Question 9: Explorer les valeurs de certaines variables : Rayon, ArticleEnPub,


CodeWeb, AbonneNewslettre , et Civilité.
[32]: class(data$Rayon)

’character’
[33]: class(data$Civilite)

6
’character’
[34]: unique(data$Rayon)

1. ’7’ 2. ’6’ 3. ’P’ 4. ’C’ 5. ”


[35]: unique(data$ArticleEnPub)

1. ” 2. NA 3. ’PB’
[36]: class(data$CodeWeb)

’integer’

[37]: data$CodeWeb = as.factor(data$CodeWeb)

[38]: class(data$CodeWeb)

’factor’
[39]: unique(data$CodeWeb)

1. <NA> 2. 600019878 3. 600046074 4. 600003435 5. 600035912 6. 600041303 7. 600011170


Levels: 1. ’600003435’ 2. ’600011170’ 3. ’600019878’ 4. ’600035912’ 5. ’600041303’ 6. ’600046074’
[40]: unique(data$AbonneNewslettre)

1. NA 2. ’N’ 3. ’O’
[41]: unique(data$Civilite)

1. ’MME’ 2. ’MR’ 3. ’ASS’ 4. ’SARL’ 5. ’MLLE’ 6. ’M&MME’ 7. ’M.’ 8. ’MLE’ 9. ” 10. ’STE’ 11. ’mr’
12. ’SCI’ 13. ’EURL’ 14. ’DR’ 15. ’M&M’ 16. ’mme’ 17. ’SA’
[42]: head(data$Rayon)

1. ’7’ 2. ’6’ 3. ’P’ 4. ’7’ 5. ’6’ 6. ’6’


[43]: tail(data$Rayon)

1. ’7’ 2. ’6’ 3. ’6’ 4. ’7’ 5. ’6’ 6. ’C’


[44]: str(data$Civilite)

chr [1:2447] "MME" "MR" "MME" "MME" "MR" "ASS" "SARL" "MME" "MME" "MLLE" ...

1.10 Question 10: Corriger et unifier les valeurs de la variable « Civilité » pour ne
garder que ces civilités : MR, MME, MLLE, COUPLE, STE et INCONNU
a titre d’exemple on fera just le cas de “MME”

7
[47]: data$Civilte= as.character(data$Civilite)

[49]: data[data$Civilite=="mme",]$Civilite = "MME"

[50]: unique(data$Civilite)

1. ’MME’ 2. ’MR’ 3. ’ASS’ 4. ’SARL’ 5. ’MLLE’ 6. ’M&MME’ 7. ’M.’ 8. ’MLE’ 9. ” 10. ’STE’ 11. ’mr’
12. ’SCI’ 13. ’EURL’ 14. ’DR’ 15. ’M&M’ 16. ’SA’

1.11 Question 11: Trier les lignes selon le nomPrénom des clients

[52]: newdata <- data[order(data$NomPrenom),]

[53]: newdata

A data.frame: 2447 × 23

1.12 Question 12: Enregistrer les lignes manipulées (ainsi corrigées et ordonnées)
dans un nouveau fichier
[55]: write.csv(newdata, "./TP1/new.csv")

Vous aimerez peut-être aussi