Fonction R melt : restructurer des data frames

La conversion de data frames avec R melt() facilite l’adaptation à différentes exigences. De nombreuses méthodes d’analyse, telles que les modèles linéaires ou l’ANOVA (analyse de la variance), préfèrent les données dans un format long, car cela est souvent plus naturel et plus interprétable.

À quoi sert R melt() ?

R melt() est une fonction du package reshape2 pour restructurer les data frames, en particulier lors du passage d’un format large à un format allongé. Dans le format large, les variables sont organisées en colonnes séparées, tandis que le format long offre une meilleure présentation pour les analyses et les visualisations.

R melt() est un outil essentiel pour la transformation des données. L’utilisation de melt() est particulièrement pertinente lorsque les informations sont disponibles dans un format large, mais qu’un format long est nécessaire pour des analyses ou des graphiques spécifiques. Ce processus de restructuration augmente la flexibilité et l’adaptabilité des data frames afin de permettre une utilisation optimale de différents outils d’analyse R et bibliothèques de visualisation.

Syntaxe de R melt()

La fonction melt() de R peut être personnalisée à l’aide de différents arguments.

melt(data.frame, na.rm = FALSE, value.name = "nom", id.vars = 'columns')
R
  • data.frame : il s’agit du data frame qui doit être restructuré.
  • na.rm : un argument optionnel qui a la valeur par défaut FALSE. S’il est défini sur TRUE, les valeurs manquantes (NA) seront supprimées de l’ensemble de données restructuré.
  • value.name : cet argument optionnel permet de spécifier le nom de la colonne qui contiendra les valeurs de la variable restructurée dans le nouvel ensemble de données.
  • id.vars : il s’agit d’un argument facultatif qui indique quelles colonnes doivent être conservées comme identifiants. Ici, columns est utilisé comme caractère générique.

Voici un exemple concret :

df <- data.frame(ID = 1:3, A = c(4, 7, NA), B = c(8, NA, 5))
R

Le data frame créé se présente comme suit :

ID A B
1 1 4 8
2 2 7 NA
3 3 NA 5
R

Nous appliquons maintenant la fonction melt() et convertissons le data frame en un format long :

melted_df <- melt(df, na.rm = FALSE, value.name = "Value", id.vars = "ID")
R

La trame de données restructurée melted_df est la suivante :

ID  variable  Value
1  1                A              4
2  2                A              7
3  3                A          NA
4  1                B              8
5  2                B          NA
6  3                B             5
R

Dans ce résultat, nous avons restructuré les données du data frame dans un format long. La colonne ID a été conservée comme identifiant, la colonne Variable contient les noms de colonne originaux A et B, et la colonne Value affiche les éléments correspondants. En raison de na.rm = FALSE, il reste des valeurs manquantes (NA).

Supprimer NA avec R melt()

Vous pouvez supprimer rapidement et facilement les valeurs manquantes dans les cadres de données avec l’option na.rm=True.

Nous définissons un nouveau cadre de données :

df <- data.frame(ID = 1:4, A = c(3, 8, NA, 5), B = c(6, NA, 2, 9), C = c(NA, 7, 4, 1))
R

Celui-ci a la forme suivante :

ID    A     B      C
1   1     3     6    NA
2   2     8   NA      7
3   3   NA    2       4
4   4     5     9       1
R

Maintenant, nous transformons le data frame avec melt() :

melted_df <- melt(df, na.rm = TRUE, value.name = "Value", id.vars = "ID")
R

Le nouveau cadre de données melted_df existe maintenant sous une forme longue et sans valeurs NA :

ID    variable  Value
1    1            A        3
2    2            A        8
3    4            A        5
4    1            B        6
5    3            B        2
6    4            B        9
7    2           C        7
8    3           C        4
9    4           C        1
R
Conseil

Si vous souhaitez vous pencher sur la manipulation de chaînes de caractères dans R, nous vous recommandons les tutoriels R substring() et R paste() de notre Digital Guide.

Hébergement Web
Hébergement Web flexible, performant et sûr
  • Certificat SSL et protection DDoS
  • Sauvegarde et restauration des données
  • Assistance 24/7 et conseiller personnel
Cet article vous a-t-il été utile ?
Page top