Les vecteurs en R : La structure reine du calcul statistique

@joekakone

Joseph Konka @joekakone

03/03/2026 · 7 min

Découvrez le vecteur atomique, la structure de données la plus importante de R : création avec c() et seq(), indexation par position ou condition, vectorisation et fonctions de synthèse.

En R, il n'existe pas de type scalaire isolé : un simple nombre comme x <- 5 est en réalité un vecteur de longueur 1.

Le vecteur atomique est la brique élémentaire absolue de R. C'est une suite ordonnée d'éléments qui partagent tous strictement le même type de données (numérique, caractère, ou logique).


1. Créer un vecteur avec la fonction c()#

La fonction fondamentale pour combiner des valeurs en un vecteur est c() (concatenate ou combine) :

# Vecteur numérique
notes <- c(12.5, 15, 18, 9, 14.5)

# Vecteur de chaînes de caractères
villes <- c("Paris", "Lyon", "Marseille", "Bordeaux")

# Vecteur de booléens
statuts <- c(TRUE, FALSE, TRUE, TRUE)

[!WARNING] La règle de coercition automatique :
Si vous mélangez des types différents au sein d'un même vecteur, R convertit automatiquement tous les éléments vers le type le plus général selon la hiérarchie :
logical \(\to\) integer \(\to\) numeric \(\to\) character.

mix <- c(1, "deux", TRUE)
print(mix) # [1] "1"    "deux" "TRUE" -> Tous convertis en character !


2. Générer des séquences et des répétitions#

Plutôt que d'écrire tous les éléments à la main, R dispose de générateurs de séquences performants :

# 1. L'opérateur deux-points (suite d'entiers consécutifs)
entiers <- 1:10        # [1]  1  2  3  4  5  6  7  8  9 10
decroissant <- 5:1     # [1] 5 4 3 2 1

# 2. La fonction seq() avec pas régulier
impairs <- seq(from = 1, to = 9, by = 2) # [1] 1 3 5 7 9

# 3. La fonction seq() avec nombre d'éléments imposé
grille <- seq(from = 0, to = 1, length.out = 5) # [1] 0.00 0.25 0.50 0.75 1.00

# 4. Répéter des motifs avec rep()
rep(1:3, times = 2)    # [1] 1 2 3 1 2 3
rep(1:3, each = 2)     # [1] 1 1 2 2 3 3

# 5. Tirage aléatoire avec sample()
tirage_loto <- sample(1:49, size = 5, replace = FALSE)

3. L'indexation et le filtrage (Slicing)#

Contrairement à Python où l'indexation commence à \(0\), en R l'indexation commence toujours à 1.

On extrait des sous-parties d'un vecteur à l'aide des crochets [] :

notes <- c(12, 18, 9, 15, 7, 20)

1. Par indices positifs (sélection)#

notes[1]            # Premier élément : [1] 12
notes[c(2, 4)]      # Deuxième et quatrième éléments : [1] 18 15
notes[1:3]          # Les trois premiers éléments : [1] 12 18 9

2. Par indices négatifs (exclusion)#

notes[-1]           # Tout SAUF le premier élément : [1] 18 9 15 7 20
notes[-c(3, 5)]     # Exclut le 3e et le 5e élément

3. Par condition logique (filtrage puissant)#

C'est l'un des mécanismes les plus utilisés en analyse de données :

# Sélectionner uniquement les notes supérieures ou égales à 10
notes_admis <- notes[notes >= 10]
print(notes_admis) # [1] 12 18 15 20


4. La vectorisation et le recyclage#

En R, les opérateurs arithmétiques agissent terme à terme sur les vecteurs sans aucune boucle for :

quantites <- c(2, 5, 10)
prix_unitaires <- c(15, 20, 8)

# Multiplication vectorielle élément par élément
totaux <- quantites * prix_unitaires
print(totaux) # [1] 30 100 80

Si les deux vecteurs sont de tailles différentes, R applique la règle du recyclage : le vecteur le plus court est répété jusqu'à atteindre la longueur du plus long.


5. Fonctions statistiques de synthèse sur vecteurs#

R propose une batterie complète de fonctions d'agrégation statistique :

valeurs <- c(10, 20, 15, 30, 25, NA)

length(valeurs) # Nombre d'éléments : [1] 6
sum(valeurs, na.rm = TRUE)   # Somme : [1] 100
mean(valeurs, na.rm = TRUE)  # Moyenne : [1] 20
median(valeurs, na.rm = TRUE)# Médiane : [1] 20
sd(valeurs, na.rm = TRUE)    # Écart-type : [1] 7.905694
min(valeurs, na.rm = TRUE)   # Minimum : [1] 10
max(valeurs, na.rm = TRUE)   # Maximum : [1] 30

# Résumé complet en une ligne
summary(valeurs)

[!NOTE] L'argument na.rm = TRUE :
Par défaut, si un vecteur contient au moins une valeur NA, la moyenne ou la somme renverra NA. L'argument na.rm = TRUE (NA remove) indique explicitement à R d'ignorer les données manquantes dans le calcul.


Mise en pratique#

  1. Créez un vecteur nommé temperatures contenant les valeurs suivantes : 18, 22, 19, 25, 28, 17, 23.
  2. Calculez la température moyenne et l'écart-type de cette série.
  3. Extrayez dans un nouveau vecteur jours_chauds les températures strictement supérieures à 20 degrés.
  4. Convertissez toutes les températures en degrés Fahrenheit à l'aide de la formule vectorielle : \(F = T \times 1.8 + 32\).

Commentaires

Inscrivez-vous à une formation complète

Voir le catalogue