Data frame (tableaux de données)

Data frame (tableaux de données) dans R

Un data frame ressemble à une feuille Excel, c'est-à-dire à un tableau composé de lignes et de colonnes. Un data frame typique se présente ainsi :

Exemple de tableau avec des personnes en lignes et des variables telles que l'âge, le sexe, le poids, le revenu, le niveau d'études et le cholestérol en colonnes

Dans la plupart des cas, vos observations (clients, patients, etc.) constituent les lignes, et les colonnes décrivent ces observations. Si vous analysez des patients, chaque ligne correspond à un patient et les colonnes décrivent les patients, par exemple leur âge, leur sexe, leur pression artérielle, leurs maladies. Un data frame n'est rien d'autre qu'un tableau à deux dimensions.

La plupart des analyses dans R sont réalisées sur des data frames ! La régression, l'apprentissage automatique, les tests statistiques, etc., s'effectuent le plus souvent sur des data frames.

Un data frame se crée avec la fonction data.frame().

Vous pouvez créer manuellement un data frame en combinant plusieurs vecteurs. Les vecteurs deviennent alors les variables (colonnes) du data frame. Créons un data frame à partir de 3 vecteurs :

## Créer une séquence de nombres, de 1 à 15
variable1 <- 1:15

## Générer 15 nombres aléatoires avec la fonction rnorm()
variable2 <- rnorm(15)

## Créer un vecteur de caractères
variable3 <- c("A", "B", "W", "C", "D", "E", "A", "B", "C", "D", "E", "U", "O", "L", "E")

## Combiner les vecteurs en un data frame avec la fonction data.frame()
my_data_frame <- data.frame(variable1, variable2, variable3)

## Afficher le résultat
my_data_frame
##    variable1   variable2 variable3
## 1          1  2.62236519         A
## 2          2  0.97561295         B
## 3          3 -0.69898033         W
## 4          4 -0.84577095         C
## 5          5  0.14130709         D
## 6          6 -0.59023300         E
## 7          7 -1.28369028         A
## 8          8 -0.50507139         B
## 9          9 -0.03698647         C
## 10        10 -0.75165815         D
## 11        11 -1.26071226         E
## 12        12  1.30092947         U
## 13        13  0.37934736         O
## 14        14 -0.53221638         L
## 15        15 -1.65424529         E

Chaque colonne d'un data frame contient le même type de données. Les vecteurs doivent avoir la même longueur ; dans le cas contraire, R recycle les valeurs de l'objet le plus court pour remplir les cellules manquantes du data frame. Cela peut produire des résultats inattendus, mais ce n'est généralement pas un problème, car on importe le plus souvent les données dans R, et R ne complète alors pas les valeurs manquantes.

Vérifions la structure de notre data frame à l'aide de la fonction str() :

str(my_data_frame)
## 'data.frame':    15 obs. of  3 variables:
##  $ variable1: int  1 2 3 4 5 6 7 8 9 10 ...
##  $ variable2: num  2.622 0.976 -0.699 -0.846 0.141 ...
##  $ variable3: Factor w/ 9 levels "A","B","C","D",..: 1 2 9 3 4 5 1 2 3 4 ...

La fonction indique que variable1 est un entier, que variable2 est numérique et que variable3 est un facteur à 9 niveaux (catégories). R a converti de force le vecteur de caractères en facteur ! Vous pouvez éviter cela en utilisant l'argument stringsAsFactors = FALSE dans la fonction data.frame() :

my_data_frame <- data.frame(variable1, variable2, variable3, stringsAsFactors = FALSE)
str(my_data_frame)
## 'data.frame':    15 obs. of  3 variables:
##  $ variable1: int  1 2 3 4 5 6 7 8 9 10 ...
##  $ variable2: num  2.622 0.976 -0.699 -0.846 0.141 ...
##  $ variable3: chr  "A" "B" "W" "C" ...

Désormais, variable3 est de type chr, abréviation de character.