Comment transposer une trame de données dans R (avec exemples)



Il existe deux méthodes courantes que vous pouvez utiliser pour transposer un bloc de données dans R :

Méthode 1 : utiliser Base R

#transpose data frame
t(df)

Méthode 2 : utiliser data.table

library(data.table)

#transpose data frame
df_t <- transpose(df)

#redefine row and column names
rownames(df_t) <- colnames(df)
colnames(df_t) <- rownames(df)

Les exemples suivants montrent comment utiliser chacune de ces méthodes dans la pratique.

Méthode 1 : transposer la trame de données à l’aide de Base R

Supposons que nous ayons le bloc de données suivant :

#create data frame
df <- data.frame(A = c(1, 2, 3, 4, 5),
                 B = c(6, 7, 8, 9, 10),
                 C = c(11, 12, 13, 14, 15))

#define row names
row.names(df) <- c('One', 'Two', 'Three', 'Four', 'Five')

#view data frame
df

      A  B  C
One   1  6 11
Two   2  7 12
Three 3  8 13
Four  4  9 14
Five  5 10 15

Nous pouvons utiliser la fonction t() de la base R pour transposer rapidement la trame de données :

#transpose data frame
t(df)

  One Two Three Four Five
A   1   2     3    4    5
B   6   7     8    9   10
C  11  12    13   14   15

Les lignes et les colonnes sont désormais inversées.

Méthode 2 : transposer le bloc de données à l’aide de data.table

Supposons encore une fois que nous ayons le bloc de données suivant :

#create data frame
df <- data.frame(A = c(1, 2, 3, 4, 5),
                 B = c(6, 7, 8, 9, 10),
                 C = c(11, 12, 13, 14, 15))

#define row names
row.names(df) <- c('One', 'Two', 'Three', 'Four', 'Five')

#view data frame
df

      A  B  C
One   1  6 11
Two   2  7 12
Three 3  8 13
Four  4  9 14
Five  5 10 15

Nous pouvons utiliser la fonction transpose() du package data.table pour transposer rapidement le bloc de données :

library(data.table)

#transpose data frame
df_t <- transpose(df)

#redefine row and column names
rownames(df_t) <- colnames(df)
colnames(df_t) <- rownames(df)

#display transposed data frame
df_t

  One Two Three Four Five
A   1   2     3    4    5
B   6   7     8    9   10
C  11  12    13   14   15

Le résultat correspond à la trame de données transposée de l’exemple précédent.

Remarque : La méthode data.table sera beaucoup plus rapide que la base R si vous travaillez avec un bloc de données extrêmement volumineux.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes sur les trames de données dans R :

Comment appliquer une fonction à chaque ligne de trame de données dans R
Comment ajouter une colonne vide à un bloc de données dans R
Comment sous-ensembler un bloc de données dans R

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *