Listes et Tableaux de données
Une version actualisée de ce chapitre est disponible sur guide-R : Listes & Tableaux de données
Il est préférable d’avoir déjà lu le chapitre Vecteurs, indexation et assignation avant d’aborder celui-ci.
Ce chapitre est évoqué dans le webin-R #02 (les bases du langage R) sur YouTube.
Listes
Par nature, les vecteurs ne peuvent contenir que des valeurs de même type (numérique, textuel ou logique). Or, on peut avoir besoin de représenter des objets plus complexes composés d’éléments disparates. C’est ce que permettent les listes.
Propriétés et création
Une liste se crée tout simplement avec la fonction list
:
[[1]]
[1] 1 2 3 4 5
[[2]]
[1] "abc"
Une liste est un ensemble d’objets, quels qu’ils soient, chaque élément d’une liste pouvant avoir ses propres dimensions. Dans notre exemple précédent, nous avons créé une liste l1
composée de deux éléments : un vecteur d’entiers de longueur 5 et un vecteur textuel de longueur 1. La longueur d’une liste correspond aux nombres d’éléments qu’elle contient et s’obtient avec length
:
[1] 2
Comme les vecteurs, une liste peut être nommée et les noms des éléments d’une liste sont accessibles avec names
:
$minuscules
[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n"
[15] "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z"
$majuscules
[1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N"
[15] "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z"
$mois
[1] "January" "February" "March" "April"
[5] "May" "June" "July" "August"
[9] "September" "October" "November" "December"
[1] 3
[1] "minuscules" "majuscules" "mois"
Que se passe-t-il maintenant si on effectue la commande suivante ?
À votre avis, quelle est la longueur de cette nouvelle liste l
? 5 ?
[1] 2
Eh bien non ! Elle est de longueur 2 car nous avons créé une liste composée de deux éléments qui sont eux-mêmes des listes. Cela est plus lisible si on fait appel à la fonction str
qui permet de visualiser la structure d’un objet.
List of 2
$ :List of 2
..$ : int [1:5] 1 2 3 4 5
..$ : chr "abc"
$ :List of 3
..$ minuscules: chr [1:26] "a" "b" "c" "d" ...
..$ majuscules: chr [1:26] "A" "B" "C" "D" ...
..$ mois : chr [1:12] "January" "February" "March" "April" ...
Une liste peut contenir tous types d’objets, y compris d’autres listes. Pour combiner les éléments d’une liste, il faut utiliser la fonction append
:
[1] 5
List of 5
$ : int [1:5] 1 2 3 4 5
$ : chr "abc"
$ minuscules: chr [1:26] "a" "b" "c" "d" ...
$ majuscules: chr [1:26] "A" "B" "C" "D" ...
$ mois : chr [1:12] "January" "February" "March" "April" ...
On peut noter en passant qu’une liste peut tout à fait n’être que partiellement nommée.
Indexation
Les crochets simples ([]
) fonctionnent comme pour les vecteurs. On peut utiliser à la fois l’indexation par position, l’indexation par nom et l’indexation par condition.
[[1]]
[1] 1 2 3 4 5
[[2]]
[1] "abc"
$minuscules
[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n"
[15] "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z"
$majuscules
[1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N"
[15] "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z"
$mois
[1] "January" "February" "March" "April"
[5] "May" "June" "July" "August"
[9] "September" "October" "November" "December"
[[1]]
[1] 1 2 3 4 5
$minuscules
[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n"
[15] "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z"
$majuscules
[1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N"
[15] "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z"
$majuscules
[1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N"
[15] "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z"
$minuscules
[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n"
[15] "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z"
[[1]]
[1] 1 2 3 4 5
[[2]]
[1] "abc"
$mois
[1] "January" "February" "March" "April"
[5] "May" "June" "July" "August"
[9] "September" "October" "November" "December"
Même si on extrait un seul élément, l’extraction obtenue avec les crochets simples renvoie toujours une liste, ici composée d’un seul élément :
List of 1
$ : int [1:5] 1 2 3 4 5
Supposons que je souhaite calculer la moyenne des valeurs du premier élément de ma liste. Essayons la commande suivante :
Warning in mean.default(l[1]): l'argument n'est ni
numérique, ni logique : renvoi de NA
[1] NA
Nous obtenons un message d’erreur. En effet, R ne sait pas calculer une moyenne à partir d’une liste. Ce qu’il lui faut, c’est un vecteur de valeurs numériques. Autrement dit, ce que nous cherchons à obtenir c’est le contenu même du premier élément de notre liste et non une liste à un seul élément.
C’est ici que les doubles crochets ([[]]
) vont rentrer en jeu. Pour ces derniers, nous pourrons utiliser l’indexation par position ou l’indexation par nom, mais pas l’indexation par condition. De plus, le critère qu’on indiquera doit indiquer un et un seul élément de notre liste. Au lieu de renvoyer une liste à un élément, les doubles crochets vont renvoyer l’élément désigné. Vite, un exemple :
List of 1
$ : int [1:5] 1 2 3 4 5
int [1:5] 1 2 3 4 5
Maintenant, nous pouvons calculer notre moyenne :
[1] 3
Nous pouvons aussi tester l’indexation par nom.
[1] "January" "February" "March" "April"
[5] "May" "June" "July" "August"
[9] "September" "October" "November" "December"
Mais il faut avouer que cette écriture avec doubles crochets et guillemets est un peu lourde. Heureusement, un nouvel acteur entre en scène : le symbole dollar ($
). C’est un raccourci des doubles crochets pour l’indexation par nom qu’on utilise ainsi :
[1] "January" "February" "March" "April"
[5] "May" "June" "July" "August"
[9] "September" "October" "November" "December"
Les écritures l$mois
et l[["mois"]]
sont équivalentes. Attention ! Cela ne fonctionne que pour l’indexation par nom.
Error: unexpected numeric constant in "l$1"
L’assignation par indexation fonctionne également avec les doubles crochets ou le signe dollar :
[[1]]
[1] 1 2 3 4 5
[[2]]
[[2]][[1]]
[1] "un" "vecteur" "textuel"
$minuscules
[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n"
[15] "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z"
$majuscules
[1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N"
[15] "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z"
$mois
[1] "Janvier" "Février" "Mars"
Tableaux de données
Il y a un type d’objets que nous avons déjà abordé dans le chapitre Premier travail avec les données, il s’agit du tableau de données ou data frame en anglais.
Propriétés et création
Dans R, les tableaux de données sont tout simplement des listes avec quelques propriétés spécifiques :
- les tableaux de données ne peuvent contenir que des vecteurs ;
- tous les vecteurs d’un tableau de données ont la même longueur ;
- tous les éléments d’un tableau de données sont nommés et ont chacun un nom unique.
Dès lors, un tableau de données correspond aux fichiers de données qu’on a l’habitude de manipuler dans d’autres logiciels de statistiques comme SPSS ou Stata. Les variables sont organisées en colonnes et les observations en lignes.
On peut créer un tableau de données avec la fonction data.frame
:
df <- data.frame(
sexe = c("f", "f", "h", "h"),
age = c(52, 31, 29, 35),
blond = c(FALSE, TRUE, TRUE, FALSE)
)
df
'data.frame': 4 obs. of 3 variables:
$ sexe : chr "f" "f" "h" "h"
$ age : num 52 31 29 35
$ blond: logi FALSE TRUE TRUE FALSE
Historiquement, la fonction data.frame
avait un gros défaut : si on ne désactivait pas l’option stringsAsFactors
elle transformait les chaînes de caractères, ici la variable sexe en facteurs (un type de vecteur que nous aborderons plus en détail dans un prochain chapitre).
Depuis la version 4.0.0, l’option stringsAsFactors
vaut maintenant FALSE
par défaut.
df <- data.frame(
sexe = c("f", "f", "h", "h"),
age = c(52, 31, 29, 35),
blond = c(FALSE, TRUE, TRUE, FALSE),
stringsAsFactors = FALSE
)
df
'data.frame': 4 obs. of 3 variables:
$ sexe : chr "f" "f" "h" "h"
$ age : num 52 31 29 35
$ blond: logi FALSE TRUE TRUE FALSE
Un tableau de données étant une liste, la fonction length
renverra le nombre d’éléments de la liste, donc dans le cas présent le nombre de variables, et names
leurs noms :
[1] 3
[1] "sexe" "age" "blond"
Comme tous les éléments d’un tableau de données ont la même longueur, cet objet peut être vu comme bidimensionnel. Les fonctions nrow
, ncol
et dim
donnent respectivement le nombre de lignes, le nombre de colonnes et les dimensions de notre tableau.
[1] 4
[1] 3
[1] 4 3
De plus, tout comme les colonnes ont un nom, il est aussi possible de nommer les lignes avec row.names
:
Indexation
Les tableaux de données étant des listes, nous pouvons donc utiliser les crochets simples ([]
), les crochets doubles ([[]]
) et le symbole dollar ($
) pour extraire des parties de notre tableau, de la même manière que pour n’importe quelle liste.
[1] "f" "f" "h" "h"
[1] "f" "f" "h" "h"
Cependant, un tableau de données étant un objet bidimensionnel, il est également possible d’extraire des données sur deux dimensions, à savoir un premier critère portant sur les lignes et un second portant sur les colonnes. Pour cela, nous utiliserons les crochets simples ([]
) en séparant nos deux critères par une virgule (,
).
Un premier exemple :
[1] 29
Cette première commande indique que nous souhaitons la troisième ligne de la seconde colonne, autrement dit l’âge de Michael. Le même résultat peut être obtenu avec l’indexation par nom, l’indexation par condition, ou un mélange de tout ça.
[1] 29
[1] 29
[1] 29
[1] 29
Il est également possible de préciser un seul critère. Par exemple, si je souhaite les deux premières observations, ou les variables sexe et blond :
Il a suffi de laisser un espace vide avant ou après la virgule. ATTENTION ! Il est cependant impératif de laisser la virgule pour indiquer à R qu’on souhaite effectuer une indexation à deux dimensions. Si on oublie la virgule, cela nous ramène au mode de fonctionnement des listes. Et le résultat n’est pas forcément le même :
[1] 52 31 29 35
Au passage, on pourra noter quelques subtilités sur le résultat renvoyé.
'data.frame': 1 obs. of 3 variables:
$ sexe : chr "f"
$ age : num 31
$ blond: logi TRUE
num [1:4] 52 31 29 35
'data.frame': 4 obs. of 1 variable:
$ age: num 52 31 29 35
num [1:4] 52 31 29 35
df[2, ]
signifie qu’on veut toutes les variables pour le second individu. Le résultat est un tableau de données à une ligne et trois colonnes. df[2]
correspond au mode d’extraction des listes et renvoie donc une liste à un élément, en l’occurrence un tableau de données à quatre observations et une variable. df[[2]]
quant à lui renvoie le contenu de cette variable, soit un vecteur numérique de longueur quatre. Reste df[, 2]
qui renvoie toutes les observations pour la seconde colonne. Or l’indexation bidimensionnelle a un fonctionnement un peu particulier : par défaut elle renvoie un tableau de données mais s’il y a une seule variable dans l’extraction, c’est un vecteur qui est renvoyé. Pour plus de détails, on pourra consulter l’entrée d’aide de [.data.frame
.
Afficher les données
Prenons un tableau de données un peu plus conséquent, en l’occurrence un jeu de données disponible dans l’extension questionr
et correspondant à un extrait de l’enquête Histoire de vie réalisée par l’INSEE en 2003. Il contient 2000 individus et 20 variables.
Si on demande d’afficher l’objet d
dans la console (résultat non reproduit ici), R va afficher l’ensemble du contenu de d
à l’écran ce qui, sur un tableau de cette taille, ne sera pas très lisible. Pour une exploration visuelle, le plus simple est souvent d’utiliser la visionneuse intégrée à RStudio et qu’on peut appeler avec la fonction View
.
Les fonctions head
et tail
, qui marchent également sur les vecteurs, permettent d’afficher seulement les premières (respectivement les dernières) lignes d’un tableau de données :
L’extension dplyr
, que nous n’aborderons en détails que plus tard, propose une fonction glimpse
(ce qui signifie aperçu
en anglais) qui permet de visualiser rapidement et de manière condensée le contenu d’un tableau de données.
Rows: 2,000
Columns: 20
$ id <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 1…
$ age <int> 28, 23, 59, 34, 71, 35, 60, 47, 20, …
$ sexe <fct> Femme, Femme, Homme, Homme, Femme, F…
$ nivetud <fct> "Enseignement superieur y compris te…
$ poids <dbl> 2634.3982, 9738.3958, 3994.1025, 573…
$ occup <fct> "Exerce une profession", "Etudiant, …
$ qualif <fct> Employe, NA, Technicien, Technicien,…
$ freres.soeurs <int> 8, 2, 2, 1, 0, 5, 1, 5, 4, 2, 3, 4, …
$ clso <fct> Oui, Oui, Non, Non, Oui, Non, Oui, N…
$ relig <fct> Ni croyance ni appartenance, Ni croy…
$ trav.imp <fct> Peu important, NA, Aussi important q…
$ trav.satisf <fct> Insatisfaction, NA, Equilibre, Satis…
$ hard.rock <fct> Non, Non, Non, Non, Non, Non, Non, N…
$ lecture.bd <fct> Non, Non, Non, Non, Non, Non, Non, N…
$ peche.chasse <fct> Non, Non, Non, Non, Non, Non, Oui, O…
$ cuisine <fct> Oui, Non, Non, Oui, Non, Non, Oui, O…
$ bricol <fct> Non, Non, Non, Oui, Non, Non, Non, O…
$ cinema <fct> Non, Oui, Non, Oui, Non, Oui, Non, N…
$ sport <fct> Non, Oui, Oui, Oui, Non, Oui, Non, N…
$ heures.tv <dbl> 0.0, 1.0, 0.0, 2.0, 3.0, 2.0, 2.9, 1…
L’extension labelled
propose une fonction look_for
qui permet de lister les différentes variables d’un fichier de données :
pos variable label col_type values
<chr> <chr> <chr> <chr> <chr>
1 id — int range: 1 - 2000
2 age — int range: 18 - 97
3 sexe — fct Homme
Femme
4 nivetud — fct N'a jamais fait d'etudes
A arrete ses etudes, avant la derniere annee d'etudes primaires
Derniere annee d'etudes primaires
1er cycle
2eme cycle
Enseignement technique ou professionnel court
Enseignement technique ou professionnel long
Enseignement superieur y compris technique superieur
5 poids — dbl range: 78.0783403 - 31092.14132
6 occup — fct Exerce une profession
Chomeur
Etudiant, eleve
Retraite
Retire des affaires
Au foyer
Autre inactif
7 qualif — fct Ouvrier specialise
Ouvrier qualifie
Technicien
Profession intermediaire
Cadre
Employe
Autre
8 freres.soeurs — int range: 0 - 22
9 clso — fct Oui
Non
Ne sait pas
10 relig — fct Pratiquant regulier
Pratiquant occasionnel
Appartenance sans pratique
Ni croyance ni appartenance
Rejet
NSP ou NVPR
11 trav.imp — fct Le plus important
Aussi important que le reste
Moins important que le reste
Peu important
12 trav.satisf — fct Satisfaction
Insatisfaction
Equilibre
13 hard.rock — fct Non
Oui
14 lecture.bd — fct Non
Oui
15 peche.chasse — fct Non
Oui
16 cuisine — fct Non
Oui
17 bricol — fct Non
Oui
18 cinema — fct Non
Oui
19 sport — fct Non
Oui
20 heures.tv — dbl range: 0 - 12
Lorsqu’on a un gros tableau de données avec de nombreuses variables, il peut être difficile de retrouver la ou les variables d’intérêt. Il est possible d’indiquer à look_for
un mot-clé pour limiter la recherche. Par exemple :
pos variable label col_type values
<chr> <chr> <chr> <chr> <chr>
11 trav.imp — fct Le plus important
Aussi important que le reste
Moins important que le reste
Peu important
12 trav.satisf — fct Satisfaction
Insatisfaction
Equilibre
Il est à noter que si la recherche n’est pas sensible à la casse (i.e. aux majuscules et aux minuscules), elle est sensible aux accents.
La méthode summary
qui fonctionne sur tout type d’objet permet d’avoir quelques statistiques de base sur les différentes variables de notre tableau, les statistiques affichées dépendant du type de variable.
id age sexe
Min. : 1.0 Min. :18.00 Homme: 899
1st Qu.: 500.8 1st Qu.:35.00 Femme:1101
Median :1000.5 Median :48.00
Mean :1000.5 Mean :48.16
3rd Qu.:1500.2 3rd Qu.:60.00
Max. :2000.0 Max. :97.00
nivetud
Enseignement technique ou professionnel court :463
Enseignement superieur y compris technique superieur:441
Derniere annee d'etudes primaires :341
1er cycle :204
2eme cycle :183
(Other) :256
NA's :112
poids occup
Min. : 78.08 Exerce une profession:1049
1st Qu.: 2221.82 Chomeur : 134
Median : 4631.19 Etudiant, eleve : 94
Mean : 5535.61 Retraite : 392
3rd Qu.: 7626.53 Retire des affaires : 77
Max. :31092.14 Au foyer : 171
Autre inactif : 83
qualif freres.soeurs
Employe :594 Min. : 0.000
Ouvrier qualifie :292 1st Qu.: 1.000
Cadre :260 Median : 2.000
Ouvrier specialise :203 Mean : 3.283
Profession intermediaire:160 3rd Qu.: 5.000
(Other) :144 Max. :22.000
NA's :347
clso relig
Oui : 936 Pratiquant regulier :266
Non :1037 Pratiquant occasionnel :442
Ne sait pas: 27 Appartenance sans pratique :760
Ni croyance ni appartenance:399
Rejet : 93
NSP ou NVPR : 40
trav.imp trav.satisf
Le plus important : 29 Satisfaction :480
Aussi important que le reste:259 Insatisfaction:117
Moins important que le reste:708 Equilibre :451
Peu important : 52 NA's :952
NA's :952
hard.rock lecture.bd peche.chasse cuisine bricol
Non:1986 Non:1953 Non:1776 Non:1119 Non:1147
Oui: 14 Oui: 47 Oui: 224 Oui: 881 Oui: 853
cinema sport heures.tv
Non:1174 Non:1277 Min. : 0.000
Oui: 826 Oui: 723 1st Qu.: 1.000
Median : 2.000
Mean : 2.247
3rd Qu.: 3.000
Max. :12.000
NA's :5
On peut également appliquer summary
à une variable particulière.
Homme Femme
899 1101
Min. 1st Qu. Median Mean 3rd Qu. Max.
18.00 35.00 48.00 48.16 60.00 97.00
L’extension questionr
fournit également une fonction bien pratique pour décrire les différentes variables d’un tableau de données. Il s’agit de describe
. Faisons de suite un essai :
d
20 Variables 2000 Observations
------------------------------------------------------------
id
n missing distinct Info Mean Gmd
2000 0 2000 1 1000 667
.05 .10 .25 .50 .75 .90
101.0 200.9 500.8 1000.5 1500.2 1800.1
.95
1900.0
lowest : 1 2 3 4 5, highest: 1996 1997 1998 1999 2000
------------------------------------------------------------
age
n missing distinct Info Mean Gmd
2000 0 78 1 48.16 19.4
.05 .10 .25 .50 .75 .90
22 26 35 48 60 72
.95
77
lowest : 18 19 20 21 22, highest: 91 92 93 96 97
------------------------------------------------------------
sexe
n missing distinct
2000 0 2
Value Homme Femme
Frequency 899 1101
Proportion 0.45 0.55
------------------------------------------------------------
nivetud
n missing distinct
1888 112 8
lowest : N'a jamais fait d'etudes A arrete ses etudes, avant la derniere annee d'etudes primaires Derniere annee d'etudes primaires 1er cycle 2eme cycle
highest: 1er cycle 2eme cycle Enseignement technique ou professionnel court Enseignement technique ou professionnel long Enseignement superieur y compris technique superieur
------------------------------------------------------------
poids
n missing distinct Info Mean Gmd
2000 0 1877 1 5536 4553
.05 .10 .25 .50 .75 .90
799.8 1161.7 2221.8 4631.2 7626.5 10819.0
.95
13647.9
lowest : 78.07834 92.68033 92.93637 127.90122 153.01026
highest: 27195.83782 29548.78954 29570.78696 29657.94035 31092.14132
------------------------------------------------------------
occup
n missing distinct
2000 0 7
lowest : Exerce une profession Chomeur Etudiant, eleve Retraite Retire des affaires
highest: Etudiant, eleve Retraite Retire des affaires Au foyer Autre inactif
Exerce une profession (1049, 0.524), Chomeur (134, 0.067),
Etudiant, eleve (94, 0.047), Retraite (392, 0.196), Retire
des affaires (77, 0.038), Au foyer (171, 0.086), Autre
inactif (83, 0.042)
------------------------------------------------------------
qualif
n missing distinct
1653 347 7
lowest : Ouvrier specialise Ouvrier qualifie Technicien Profession intermediaire Cadre
highest: Technicien Profession intermediaire Cadre Employe Autre
Ouvrier specialise (203, 0.123), Ouvrier qualifie (292,
0.177), Technicien (86, 0.052), Profession intermediaire
(160, 0.097), Cadre (260, 0.157), Employe (594, 0.359),
Autre (58, 0.035)
------------------------------------------------------------
freres.soeurs
n missing distinct Info Mean Gmd
2000 0 19 0.977 3.283 2.87
.05 .10 .25 .50 .75 .90
0 1 1 2 5 7
.95
9
lowest : 0 1 2 3 4, highest: 14 15 16 18 22
0 (167, 0.084), 1 (407, 0.203), 2 (427, 0.214), 3 (284,
0.142), 4 (210, 0.105), 5 (151, 0.076), 6 (99, 0.050), 7
(94, 0.047), 8 (52, 0.026), 9 (37, 0.018), 10 (21, 0.011),
11 (21, 0.011), 12 (8, 0.004), 13 (10, 0.005), 14 (4,
0.002), 15 (4, 0.002), 16 (1, 0.000), 18 (2, 0.001), 22 (1,
0.000)
------------------------------------------------------------
clso
n missing distinct
2000 0 3
Value Oui Non Ne sait pas
Frequency 936 1037 27
Proportion 0.468 0.518 0.014
------------------------------------------------------------
relig
n missing distinct
2000 0 6
lowest : Pratiquant regulier Pratiquant occasionnel Appartenance sans pratique Ni croyance ni appartenance Rejet
highest: Pratiquant occasionnel Appartenance sans pratique Ni croyance ni appartenance Rejet NSP ou NVPR
Pratiquant regulier (266, 0.133), Pratiquant occasionnel
(442, 0.221), Appartenance sans pratique (760, 0.380), Ni
croyance ni appartenance (399, 0.200), Rejet (93, 0.046),
NSP ou NVPR (40, 0.020)
------------------------------------------------------------
trav.imp
n missing distinct
1048 952 4
Le plus important (29, 0.028), Aussi important que le reste
(259, 0.247), Moins important que le reste (708, 0.676),
Peu important (52, 0.050)
------------------------------------------------------------
trav.satisf
n missing distinct
1048 952 3
Value Satisfaction Insatisfaction Equilibre
Frequency 480 117 451
Proportion 0.458 0.112 0.430
------------------------------------------------------------
hard.rock
n missing distinct
2000 0 2
Value Non Oui
Frequency 1986 14
Proportion 0.993 0.007
------------------------------------------------------------
lecture.bd
n missing distinct
2000 0 2
Value Non Oui
Frequency 1953 47
Proportion 0.977 0.024
------------------------------------------------------------
peche.chasse
n missing distinct
2000 0 2
Value Non Oui
Frequency 1776 224
Proportion 0.888 0.112
------------------------------------------------------------
cuisine
n missing distinct
2000 0 2
Value Non Oui
Frequency 1119 881
Proportion 0.559 0.440
------------------------------------------------------------
bricol
n missing distinct
2000 0 2
Value Non Oui
Frequency 1147 853
Proportion 0.574 0.426
------------------------------------------------------------
cinema
n missing distinct
2000 0 2
Value Non Oui
Frequency 1174 826
Proportion 0.587 0.413
------------------------------------------------------------
sport
n missing distinct
2000 0 2
Value Non Oui
Frequency 1277 723
Proportion 0.638 0.362
------------------------------------------------------------
heures.tv
n missing distinct Info Mean Gmd
1995 5 29 0.972 2.247 1.877
.05 .10 .25 .50 .75 .90
0 0 1 2 3 4
.95
5
lowest : 0.0 0.1 0.2 0.3 0.4, highest: 8.0 9.0 10.0 11.0 12.0
------------------------------------------------------------
Comme on le voit sur cet exemple, describe
nous affiche le type des variables, les premières valeurs de chacune, le nombre de valeurs manquantes, le nombre de valeurs différentes (uniques) ainsi que quelques autres informations suivant le type de variables.
Il est possible de restreindre l’affichage à seulement quelques variables en indiquant le nom de ces dernières.
age trav.satisf
20 Variables 2000 Observations
------------------------------------------------------------
id
n missing distinct Info Mean Gmd
2000 0 2000 1 1000 667
.05 .10 .25 .50 .75 .90
101.0 200.9 500.8 1000.5 1500.2 1800.1
.95
1900.0
lowest : 1 2 3 4 5, highest: 1996 1997 1998 1999 2000
------------------------------------------------------------
age
n missing distinct Info Mean Gmd
2000 0 78 1 48.16 19.4
.05 .10 .25 .50 .75 .90
22 26 35 48 60 72
.95
77
lowest : 18 19 20 21 22, highest: 91 92 93 96 97
------------------------------------------------------------
sexe
n missing distinct
2000 0 2
Value Homme Femme
Frequency 899 1101
Proportion 0.45 0.55
------------------------------------------------------------
nivetud
n missing distinct
1888 112 8
lowest : N'a jamais fait d'etudes A arrete ses etudes, avant la derniere annee d'etudes primaires Derniere annee d'etudes primaires 1er cycle 2eme cycle
highest: 1er cycle 2eme cycle Enseignement technique ou professionnel court Enseignement technique ou professionnel long Enseignement superieur y compris technique superieur
------------------------------------------------------------
poids
n missing distinct Info Mean Gmd
2000 0 1877 1 5536 4553
.05 .10 .25 .50 .75 .90
799.8 1161.7 2221.8 4631.2 7626.5 10819.0
.95
13647.9
lowest : 78.07834 92.68033 92.93637 127.90122 153.01026
highest: 27195.83782 29548.78954 29570.78696 29657.94035 31092.14132
------------------------------------------------------------
occup
n missing distinct
2000 0 7
lowest : Exerce une profession Chomeur Etudiant, eleve Retraite Retire des affaires
highest: Etudiant, eleve Retraite Retire des affaires Au foyer Autre inactif
Exerce une profession (1049, 0.524), Chomeur (134, 0.067),
Etudiant, eleve (94, 0.047), Retraite (392, 0.196), Retire
des affaires (77, 0.038), Au foyer (171, 0.086), Autre
inactif (83, 0.042)
------------------------------------------------------------
qualif
n missing distinct
1653 347 7
lowest : Ouvrier specialise Ouvrier qualifie Technicien Profession intermediaire Cadre
highest: Technicien Profession intermediaire Cadre Employe Autre
Ouvrier specialise (203, 0.123), Ouvrier qualifie (292,
0.177), Technicien (86, 0.052), Profession intermediaire
(160, 0.097), Cadre (260, 0.157), Employe (594, 0.359),
Autre (58, 0.035)
------------------------------------------------------------
freres.soeurs
n missing distinct Info Mean Gmd
2000 0 19 0.977 3.283 2.87
.05 .10 .25 .50 .75 .90
0 1 1 2 5 7
.95
9
lowest : 0 1 2 3 4, highest: 14 15 16 18 22
0 (167, 0.084), 1 (407, 0.203), 2 (427, 0.214), 3 (284,
0.142), 4 (210, 0.105), 5 (151, 0.076), 6 (99, 0.050), 7
(94, 0.047), 8 (52, 0.026), 9 (37, 0.018), 10 (21, 0.011),
11 (21, 0.011), 12 (8, 0.004), 13 (10, 0.005), 14 (4,
0.002), 15 (4, 0.002), 16 (1, 0.000), 18 (2, 0.001), 22 (1,
0.000)
------------------------------------------------------------
clso
n missing distinct
2000 0 3
Value Oui Non Ne sait pas
Frequency 936 1037 27
Proportion 0.468 0.518 0.014
------------------------------------------------------------
relig
n missing distinct
2000 0 6
lowest : Pratiquant regulier Pratiquant occasionnel Appartenance sans pratique Ni croyance ni appartenance Rejet
highest: Pratiquant occasionnel Appartenance sans pratique Ni croyance ni appartenance Rejet NSP ou NVPR
Pratiquant regulier (266, 0.133), Pratiquant occasionnel
(442, 0.221), Appartenance sans pratique (760, 0.380), Ni
croyance ni appartenance (399, 0.200), Rejet (93, 0.046),
NSP ou NVPR (40, 0.020)
------------------------------------------------------------
trav.imp
n missing distinct
1048 952 4
Le plus important (29, 0.028), Aussi important que le reste
(259, 0.247), Moins important que le reste (708, 0.676),
Peu important (52, 0.050)
------------------------------------------------------------
trav.satisf
n missing distinct
1048 952 3
Value Satisfaction Insatisfaction Equilibre
Frequency 480 117 451
Proportion 0.458 0.112 0.430
------------------------------------------------------------
hard.rock
n missing distinct
2000 0 2
Value Non Oui
Frequency 1986 14
Proportion 0.993 0.007
------------------------------------------------------------
lecture.bd
n missing distinct
2000 0 2
Value Non Oui
Frequency 1953 47
Proportion 0.977 0.024
------------------------------------------------------------
peche.chasse
n missing distinct
2000 0 2
Value Non Oui
Frequency 1776 224
Proportion 0.888 0.112
------------------------------------------------------------
cuisine
n missing distinct
2000 0 2
Value Non Oui
Frequency 1119 881
Proportion 0.559 0.440
------------------------------------------------------------
bricol
n missing distinct
2000 0 2
Value Non Oui
Frequency 1147 853
Proportion 0.574 0.426
------------------------------------------------------------
cinema
n missing distinct
2000 0 2
Value Non Oui
Frequency 1174 826
Proportion 0.587 0.413
------------------------------------------------------------
sport
n missing distinct
2000 0 2
Value Non Oui
Frequency 1277 723
Proportion 0.638 0.362
------------------------------------------------------------
heures.tv
n missing distinct Info Mean Gmd
1995 5 29 0.972 2.247 1.877
.05 .10 .25 .50 .75 .90
0 0 1 2 3 4
.95
5
lowest : 0.0 0.1 0.2 0.3 0.4, highest: 8.0 9.0 10.0 11.0 12.0
------------------------------------------------------------
On peut également transmettre juste une variable :
d$sexe
n missing distinct
2000 0 2
Value Homme Femme
Frequency 899 1101
Proportion 0.45 0.55
En résumé
Les Listes
- Les listes sont des objets unidimensionnels pouvant contenir tout type d’objet, y compris d’autres listes.
- Elles ont une longueur qu’on obtient avec
length
. - On crée une liste avec
list
et on peut fusionner des listes avecappend
. - Tout comme les vecteurs, les listes peuvent être nommées et les noms des éléments s’obtiennent avec
names
. - Les crochets simples (
[]
) permettent de sélectionner les éléments d’une liste, en utilisant l’indexation par position, l’indexation par nom ou l’indexation par condition. Cela renvoie toujours une autre liste. - Les doubles crochets (
[[]]
) renvoient directement le contenu d’un élément de la liste qu’on aura sélectionné par position ou par nom. - Le symbole
$
est un raccourci pour facilement sélectionner un élément par son nom,liste$nom
étant équivalent àliste[["nom"]]
.
Les Tableaux de données
- Les tableaux de données sont des listes avec des propriétés particulières :
- tous les éléments sont des vecteurs ;
- tous les vecteurs ont la même longueur ;
- tous les vecteurs ont un nom et ce nom est unique.
- On peut créer un tableau de données avec
data.frame
. - Les tableaux de données correspondent aux fichiers de données qu’on utilise usuellement dans d’autres logiciels de statistiques : les variables sont représentées en colonnes et les observations en lignes.
- Ce sont des objets bidimensionnels :
ncol
renvoie le nombre de colonnes etnrow
le nombre de lignes. - Les doubles crochets (
[[]]
) et le symbole dollar ($
) fonctionnent comme pour les listes et permettent d’accéder aux variables. - Il est possible d’utiliser des coordonnées bidimensionnelles avec les crochets simples (
[]
) en indiquant un critère sur les lignes puis un critère sur les colonnes, séparés par une virgule (,
).