cursus
Comment transposer une matrice en R : Un tutoriel rapide
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.
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.
Poursuivez votre parcours R dès aujourd'hui !
cours
Intermédiaire R
cours