Accéder au contenu principal

Comment transposer une matrice en R : Un tutoriel rapide

Apprenez trois méthodes pour transposer une matrice dans R dans ce tutoriel rapide.
Actualisé 14 nov. 2024

La transposition de matrices est une tâche de manipulation de données de base dans l'environnement de programmation R. Dans ce tutoriel, je vais vous montrer comment transposer efficacement des matrices dans R, en présentant plusieurs méthodes pour accomplir cette tâche. Commençons !

La réponse rapide : Comment transposer une matrice dans R

Si vous êtes pressé, voici la façon la plus rapide de transposer une matrice dans R : utilisez la fonction t(). La fonction t() fait partie de la base R et permet de transposer immédiatement une matrice. Voici un exemple simple :

# Creating a sample matrix
my_matrix <- matrix(1:6, nrow = 2, ncol = 3)
print(my_matrix)
      [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6
# Transposing the matrix
transposed_matrix <- t(my_matrix)
print(transposed_matrix)
      [,1] [,2]
[1,]    1    2
[2,]    3    4
[3,]    5    6

Qu'est-ce que la transposition ?

La transposition d'une matrice consiste à inverser ses lignes et ses colonnes, en transformant les données des lignes en données des colonnes, et vice versa. Cette opération est couramment utilisée dans la manipulation des données pour restructurer les ensembles de données et les rendre plus adaptés à des analyses ou des visualisations spécifiques. Prenons l'exemple d'une matrice contenant les températures journalières de différentes villes. La transposition de cette base de données permet de remplacer les lignes (jours) par des colonnes (villes), ce qui peut simplifier d'autres opérations telles que le traçage ou l'analyse statistique.

Jour

New York (en anglais)

Lost Angeles

Chicago

Jour 1

22

25

18

Jour 2

20

28

21

Un échantillon de données météorologiques sur 3 villes avant transposition

Ville

Jour 1

Jour 2

New York (en anglais)

22

20

Los Angeles

25

28

Chicago (en anglais)

18

21

Un échantillon de données météorologiques sur 3 villes après transposition

Trois méthodes pour transposer une matrice en R

Etant donné notre matrice de températures journalières pour différentes villes, explorons comment transposer cette matrice en utilisant différentes méthodes dans R.

Méthode n° 1 : Comment transposer une matrice dans R en utilisant Base R

La méthode la plus simple pour transposer une matrice dans R est d'utiliser la fonction de base R t(), comme nous l'avons vu précédemment. Il est efficace et direct et constitue une option de choix pour transposer rapidement des matrices sans avoir recours à des progiciels supplémentaires.

# Assume that temparature_matrix is already predefined
print(temperature_matrix)

      New_York Los_Angeles Chicago
Day 1       22          20      25
Day 2       28          18      21
# Transpose temperature_matrix
transposed_matrix <- t(temperature_matrix)

print(transposed_matrix)

      New_York Los_Angeles Chicago
Day 1       22          20      25
Day 2       28          18      21

Méthode n° 2 : Transposer une matrice en R en utilisant tidyverse

Le tidyverse est un ensemble d'outils robustes en R qui permettent de travailler avec des données de manière efficace et cohérente. Bien que la tidyverse soit généralement utilisée avec les cadres de données, vous pouvez convertir une matrice en cadre de données, puis utiliser tidyr pour la "transposer" par pivotement. Ceci est particulièrement utile si vous utilisez déjà le site tidyverse pour analyser des données.

library(tidyr)
library(dplyr)
library(tibble)

# Converting the matrix to a data frame for tidyverse manipulation
temperature_df <- as.data.frame(temperature_matrix)

# "Transposing" the matrix by converting to long then wide format
transposed_df <- temperature_df %>%
  rownames_to_column(var = "Day") %>%
  pivot_longer(-Day, names_to = "City", values_to = "Temperature") %>%
  pivot_wider(names_from = City, values_from = Temperature)

print(transposed_df)
# A tibble: 2 × 4
  Day   New_York Los_Angeles Chicago
  <chr>    <dbl>       <dbl>   <dbl>
1 Day 1       22          20      25
2 Day 2       28          18      21

Méthode n° 3 : Transposition d'une matrice dans R à l'aide de data.table

Tout comme l'approche tidyverse, data.table peut travailler avec des cadres de données ou des tableaux de données. Voici comment vous pouvez transposer une matrice en la convertissant d'abord en tableau de données :

library(data.table)

# Converting the matrix to a data.table
temperature_dt <- as.data.table(temperature_matrix, keep.rownames = "Day")

# Transposing the matrix by melting and dcasting (similar to pivot_longer and pivot_wider)
transposed_dt <- melt(temperature_dt, id.vars = "Day") %>%
  dcast(variable ~ Day, value.var = "value")

print(transposed_dt)
      variable Day 1 Day 2
1:    New_York    22    28
2: Los_Angeles    20    18
3:     Chicago    25    21

Réflexions finales

La transposition de matrices est une compétence fondamentale de la programmation R. Que vous travailliez avec R de base, tidyr au sein de tidyverse, ou le package data.table, R offre des options flexibles pour répondre à vos besoins en matière de données. Si vous souhaitez en savoir plus, consultez notre fiche d'aide sur le remodelage des données avec tidyr en R, ou mieux encore, commencez par le cursus de compétences sur la manipulation des données en R.


Photo of Adel Nehme
Author
Adel Nehme
LinkedIn

Adel est un éducateur, conférencier et évangéliste en science des données à DataCamp où il a publié plusieurs cours et formations en direct sur l'analyse des données, l'apprentissage automatique et l'ingénierie des données. Il est passionné par la diffusion des compétences en matière de données dans les organisations et par l'intersection de la technologie et de la société. Il est titulaire d'une maîtrise en science des données et en analyse commerciale. Pendant son temps libre, vous pouvez le trouver en train de traîner avec son chat Louis.

Sujets

Poursuivez votre parcours R dès aujourd'hui !

cursus

R Programmation

22 heures hr
Améliorez vos compétences en programmation R ! Apprenez à travailler avec des structures de données courantes, à optimiser le code et à écrire vos propres fonctions.
Afficher les détailsRight Arrow
Commencer Le Cours
Certification disponible

cours

Intermédiaire R

6 hr
598.5K
Poursuivez votre parcours pour devenir un ninja de R en vous familiarisant avec les instructions conditionnelles, les boucles et les fonctions vectorielles.
Voir plusRight Arrow