On charge le jeu de données

d <- read.csv2(file.choose())

head(d)
##   cat_sociales aime_produit_laitier Note_hedonique_A Note_hedonique_B
## 1     Etudiant                  Oui                8                8
## 2     Etudiant                  Oui                7                7
## 3     Etudiant                  Oui                6                6
## 4     Etudiant                  Oui                6                6
## 5     Etudiant                  Oui                6                7
## 6     Etudiant                  Non                1                3
##   Note_texture_A Note_texture_B Note_odeur_A Note_odeur_B
## 1              7              7            6            6
## 2              4              8            7            5
## 3              7              8            6            7
## 4              7              6            4            5
## 5              4              3            4            5
## 6              7              8            7            0

Question 1

#### a) Les effectifs des différentes catégories sociales
table(d$cat_sociales)
## 
## Agriculteur      Autres      Cadres    Etudiant   Retraités 
##          10          30          10          23          10
#### b) L’histogramme des notes au produit laitier B sur le critère « texture » ?
hist(d$Note_texture_B)

#### c) La moyenne des notes au produit laitier B sur le critère « odeur » ?
mean(d$Note_odeur_B)
## [1] 5.421687
#### d) La corrélation entre les notes au produit laitier A sur le critère « plaisir » et les notes au produit laitier A sur le critère « texture » ?
cor(d$Note_hedonique_A, d$Note_texture_A)
## [1] -0.02938273

Question 2

#### Etudiants
etudiants <- table(d[d$cat_sociales == "Etudiant",]$aime_produit_laitier)
prop.table(etudiants)
## 
##       Non       Oui 
## 0.2173913 0.7826087
#### Retraités
retraites <- table(d[d$cat_sociales == "Retraités",]$aime_produit_laitier)
prop.table(retraites)
## 
## Non Oui 
## 0.3 0.7
#### Etc.

Question 3

#### Méthode 1 : on crée un sous-tableau
# on sélectionne les lignes qui correspondent aux étudiants qui aiment les produits laitiers en général
x <- d[d$cat_sociales == "Etudiant" & d$aime_produit_laitier == "Oui",]

mean(x$Note_hedonique_A)
## [1] 6.944444
#### Méthode 2: directe
mean(d[d$cat_sociales == "Etudiant" & d$aime_produit_laitier == "Oui",]$Note_hedonique_A)
## [1] 6.944444

Question 4

# on utilise la fonction 'aggregate'
hedoniqueA <- aggregate(d$Note_hedonique_A, list(csp=d$cat_sociales), mean)
textureA <- aggregate(d$Note_texture_A, list(csp=d$cat_sociales), mean)
odeurA <- aggregate(d$Note_odeur_A, list(csp=d$cat_sociales), mean)

# on utilise la fonction 'data.frame' pour regrouper les tableaux 
data.frame(hedoniqueA,textureA$x,odeurA$x)
##           csp        x textureA.x odeurA.x
## 1 Agriculteur 5.500000   6.400000 4.900000
## 2      Autres 4.300000   6.133333 5.200000
## 3      Cadres 6.100000   7.400000 6.000000
## 4    Etudiant 6.434783   6.043478 6.173913
## 5   Retraités 6.700000   5.800000 6.600000
# on renomme les colonnes (pour info, pas une commande à connaître)
tableau <- data.frame(hedoniqueA,textureA$x,odeurA$x)

names(tableau) <- c("csp", "hedoniqueA", "textureA", "odeurA")

tableau
##           csp hedoniqueA textureA   odeurA
## 1 Agriculteur   5.500000 6.400000 4.900000
## 2      Autres   4.300000 6.133333 5.200000
## 3      Cadres   6.100000 7.400000 6.000000
## 4    Etudiant   6.434783 6.043478 6.173913
## 5   Retraités   6.700000 5.800000 6.600000