Les Dataframes en R : La structure centrale de la Data Analyse

@joekakone

Joseph Konka @joekakone

03/03/2026 · 7 min

Découvrez le dataframe en R, équivalent d'une table SQL ou d'une feuille Excel : création avec data.frame(), inspection (head, str, summary), manipulation de colonnes et filtrage de données.

Si vous deviez ne retenir qu'une seule structure de données pour toute votre carrière d'analyste en R, ce serait le dataframe (tableau de données).

Équivalent direct d'une table dans une base de données relationnelle (SQL), d'une feuille de calcul Excel ou d'un DataFrame Pandas en Python, le dataframe est un tableau à deux dimensions organisé en lignes (les observations ou individus) et en colonnes (les variables mesurées).

Sa force réside dans son hybridation : chaque colonne est un vecteur homogène d'un type précis (numérique, texte, date, facteur), mais différentes colonnes peuvent avoir des types différents.


1. Création d'un Dataframe avec data.frame()#

On construit un dataframe en fournissant des vecteurs de longueur identique :

clients <- data.frame(
  id = 1:5,
  nom = c("Dupont", "Martin", "Bernard", "Thomas", "Petit"),
  age = c(28, 45, 34, 52, 23),
  ville = factor(c("Paris", "Lyon", "Paris", "Marseille", "Lyon")),
  depenses = c(120.50, 450.00, 89.90, 310.20, 15.00),
  fidele = c(TRUE, TRUE, FALSE, TRUE, FALSE)
)

print(clients)

Sortie :

  id     nom age     ville depenses fidele
1  1  Dupont  28     Paris   120.50   TRUE
2  2  Martin  45      Lyon   450.00   TRUE
3  3 Bernard  34     Paris    89.90  FALSE
4  4  Thomas  52 Marseille   310.20   TRUE
5  5   Petit  23      Lyon    15.00  FALSE


2. Fonctions indispensables pour inspecter un jeu de données#

Avant de vous lancer dans des analyses complexes, inspectez systématiquement votre table :

# Afficher les 6 premières lignes
head(clients, n = 3)

# Dimensions globales
dim(clients)  # [1] 5 6 (5 lignes, 6 colonnes)
nrow(clients) # [1] 5
ncol(clients) # [1] 6

# Noms des variables
colnames(clients)

# Structure interne et types des colonnes
str(clients)

# Résumé statistique automatique
summary(clients)

3. Sélection et création de colonnes#

1. Extraire une colonne existante#

Le moyen le plus direct et lisible est l'utilisation de l'opérateur dollar $ :

# Extrait un vecteur numérique
clients$depenses

# Calculer immédiatement la moyenne des dépenses
mean(clients$depenses) # [1] 197.12

2. Ajouter une nouvelle colonne calculée#

L'ajout se fait par simple affectation :

# Calculer le montant TTC (TVA à 20%)
clients$depenses_ttc <- clients$depenses * 1.20

# Créer une variable booléenne indiquant un client senior (> 40 ans)
clients$senior <- clients$age > 40

4. Filtrer les lignes et sous-ensembles (Slicing)#

Pour sélectionner des lignes répondant à des critères précis, on utilise l'indexation matricielle clients[condition, ] :

# 1. Sélectionner les clients parisiens
clients_paris <- clients[clients$ville == "Paris", ]

# 2. Sélectionner les clients ayant dépensé plus de 100€ ET fidèles
gros_clients <- clients[clients$depenses > 100 & clients$fidele == TRUE, ]

# 3. Sélectionner des colonnes spécifiques pour un sous-ensemble de lignes
clients[clients$age < 30, c("nom", "depenses")]

[!TIP] La fonction alternative subset() :
R propose également la fonction subset(), très pratique car elle évite de répéter le nom du dataframe :

subset(clients, age > 30 & ville == "Lyon", select = c(nom, depenses))


Mise en pratique#

  1. À partir du dataframe clients créé ci-dessus, calculez l'âge moyen des clients de votre base.
  2. Filtrez le dataframe pour ne conserver que les clients fidèles ayant moins de 50 ans.
  3. Ajoutez une colonne statut_panier qui vaut "Grand" si les dépenses dépassent 200€, et "Petit" sinon, en utilisant la fonction vectorisée ifelse(clients$depenses > 200, "Grand", "Petit").

Commentaires

Inscrivez-vous à une formation complète

Voir le catalogue