0Pricing
R Academy · Leçon

Transposer et remodeler des matrices

Utilisez t(), dim() et les opérations de remodelage sur les matrices.

Transposer et remodeler des matrices est une leçon R Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage R Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours R Academy comprend 4 leçons au total.

Transposer une matrice avec t()

t(m) transpose une matrice : elle échange les lignes et les colonnes, de sorte que la ligne i devient la colonne i dans le résultat. Les dimensions sont inversées : une matrice 3x4 devient une matrice 4x3 après transposition.

m <- matrix(1:6, nrow = 2, ncol = 3)
cat('Original (2x3):
'); print(m)
cat('Transposed (3x2):
'); print(t(m))
cat('Original dim:', dim(m), '-> Transposed dim:', dim(t(m)), '
')

Transposer avec des dimensions nommées

Lorsqu’une matrice possède des noms de lignes et de colonnes, t() les échange correctement : les noms de lignes deviennent des noms de colonnes, et inversement. Vos données restent ainsi correctement étiquetées après la transposition.

scores <- matrix(
  c(88,92,75, 79,85,90),
  nrow = 2, byrow = TRUE,
  dimnames = list(c('Alice', 'Bob'), c('Math', 'Sci', 'Eng'))
)
cat('Original (students x subjects):
'); print(scores)
cat('Transposed (subjects x students):
'); print(t(scores))

Remodeler avec dim(m) <- c(r, c)

Vous pouvez remodeler une matrice en réaffectant son attribut dim. Le nombre total d’éléments doit rester identique. Le remodelage lit et remplit les données colonne par colonne, comme matrix().

m <- matrix(1:12, nrow = 3, ncol = 4)
cat('Original (3x4):
'); print(m)

# Reshape to 4x3
dim(m) <- c(4, 3)
cat('Reshaped to (4x3):
'); print(m)

# Reshape to 6x2
dim(m) <- c(6, 2)
cat('Reshaped to (6x2):
'); print(m)

Convertir une matrice en vector avec as.vector()

as.vector(m) transforme une matrice en vector unidimensionnel en lisant les valeurs colonne par colonne. Tous les attributs de dimension sont ainsi supprimés de l’objet.

m <- matrix(c(10,20,30,40,50,60), nrow = 2, ncol = 3)
cat('Matrix:
'); print(m)

v <- as.vector(m)
cat('As vector (col-by-col):', v, '
')
cat('Is vector:', is.vector(v), '
')
cat('Is matrix:', is.matrix(v), '
')

Convertir un vector en matrice avec as.matrix()

as.matrix(v) convertit un vector en matrice à une seule colonne. Il s’agit de la conversion la plus simple. Vous pouvez ensuite la remodeler à l’aide de dim() pour obtenir les dimensions souhaitées.

v <- c(5, 10, 15, 20, 25, 30)
cat('Vector:', v, '
')

# as.matrix makes a 6x1 matrix
m_single_col <- as.matrix(v)
cat('Single-column matrix:
'); print(m_single_col)
cat('Dimensions:', dim(m_single_col), '
')

rbind() — empiler des lignes

rbind() combine des matrices ou des vectors en empilant les lignes. Toutes les entrées doivent comporter le même nombre de colonnes. La matrice obtenue possède le nombre total de lignes combinées.

first_half <- matrix(1:6, nrow = 2, ncol = 3)
second_half <- matrix(7:12, nrow = 2, ncol = 3)

combined <- rbind(first_half, second_half)
cat('rbind result (4x3):
'); print(combined)
cat('Dimensions:', dim(combined), '
')

cbind() — joindre des colonnes

cbind() combine des matrices ou des vectors en joignant les colonnes côte à côte. Toutes les entrées doivent comporter le même nombre de lignes. Le résultat possède le nombre total de colonnes combinées.

ids <- matrix(101:104, nrow = 4, ncol = 1)
scores_mat <- matrix(c(88,79,95,72, 92,85,78,90), nrow = 4)

full_data <- cbind(ids, scores_mat)
colnames(full_data) <- c('ID', 'Test1', 'Test2')
cat('cbind result:
'); print(full_data)

rbind() et cbind() avec des lignes ou colonnes nommées

Lorsque vous utilisez rbind() ou cbind() avec des matrices ou des vectors nommés, les noms de dimensions sont conservés (et, dans le cas des vectors, leurs noms deviennent des noms de lignes ou de colonnes).

# Add a new student row with rbind
existing <- matrix(c(88,92,75, 79,85,90), nrow = 2, byrow = TRUE,
                   dimnames = list(c('Alice','Bob'), c('Math','Sci','Eng')))
new_student <- c(Math=95, Sci=78, Eng=82)
updated <- rbind(existing, Carol = new_student)
cat('Updated roster:
'); print(updated)

Identité de la double transposition

Appliquer t() deux fois renvoie la matrice d’origine. Il s’agit d’une vérification de cohérence utile qui montre que la transposition est sa propre opération inverse : t(t(m)) == m.

m <- matrix(c(1,2,3,4,5,6), nrow = 2)
cat('Original:
'); print(m)
cat('t(m):
');    print(t(m))
cat('t(t(m)):
'); print(t(t(m)))
cat('t(t(m)) == m:', all(t(t(m)) == m), '
')

En pratique : remodelage de type pivot

Une tâche courante de remodelage consiste à convertir des données entre un format large et un format long. Ici, nous simulons manuellement un pivot du format large vers le format long à l’aide d’opérations matricielles : transposer, aplatir et reconstruire la structure.

# Wide: 3 students x 4 months scores
wide <- matrix(c(85,88,90,92, 78,80,79,83, 91,94,88,95),
               nrow = 3, byrow = TRUE)
rownames(wide) <- c('Alice', 'Bob', 'Carol')
colnames(wide) <- c('Jan', 'Feb', 'Mar', 'Apr')
cat('Wide format:
'); print(wide)

# Transposed: 4 months x 3 students
long_view <- t(wide)
cat('Transposed (months x students):
'); print(long_view)

Récapitulatif du remodelage et de la combinaison

Principaux outils de remodelage et de combinaison des matrices :

  • t(m) — transposer (échanger les lignes et les colonnes)
  • dim(m) <- c(r, c) — remodeler sur place (avec le même nombre total d’éléments)
  • as.vector(m) — aplatir en vector 1D (ordre par colonne)
  • as.matrix(v) — convertir en matrice à une colonne
  • rbind(...) — empiler des matrices verticalement
  • cbind(...) — joindre des matrices horizontalement
# Demo all tools
v <- 1:6
m1 <- as.matrix(v)               # 6x1
dim(m1) <- c(2, 3)               # reshape to 2x3
m2 <- t(m1)                      # 3x2
m3 <- cbind(m2, c(10, 20, 30))   # 3x3
cat('Final matrix:
'); print(m3)

Vérification rapide

Quelles dimensions produit t(matrix(1:12, nrow = 3, ncol = 4)) ?

Récapitulatif : transposer et remodeler

Excellent ! Voici les points essentiels de cette leçon :

  • t(m) échange les lignes et les colonnes ; t(t(m)) renvoie la matrice d’origine
  • dim(m) <- c(r, c) remodèle la matrice sans la copier (le même nombre d’éléments est requis)
  • as.vector() aplatit les données colonne par colonne ; as.matrix() crée une matrice à une seule colonne
  • rbind() empile les lignes (le même nombre de colonnes est requis)
  • cbind() joint les colonnes côte à côte (le même nombre de lignes est requis)
  • Les dimensions nommées sont conservées lors de ces opérations
# Practical: merge data then compute column means
team_a <- matrix(c(82,78,91, 85,80,88), nrow = 2, byrow=TRUE)
team_b <- matrix(c(75,92,79, 88,84,93), nrow = 2, byrow=TRUE)
all_teams <- rbind(team_a, team_b)
colnames(all_teams) <- c('Speed', 'Accuracy', 'Strength')
cat('Combined teams:
'); print(all_teams)
cat('Average per skill:', colMeans(all_teams), '
')

Questions Fréquemment Posées

La leçon « Transposer et remodeler des matrices » est-elle gratuite ?

Oui — le texte complet de « Transposer et remodeler des matrices » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours R Academy, passe à CoddyKit PRO. Le cours R Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Transposer et remodeler des matrices » ?

Utilisez t(), dim() et les opérations de remodelage sur les matrices. Tu pratiques R Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer R Academy ?

Aucune expérience préalable n'est requise. R Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Transposer et remodeler des matrices » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon R Academy ?

Oui. Chaque leçon R Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Créer des matrices avec matrix()
  2. Indexation et sous-ensembles de matrices
  3. Arithmétique et opérations sur les matrices
  4. Transposer et remodeler des matrices
← Retour à R Academy