La con­ver­sion de data frames avec R melt() facilite l’adap­ta­tion à dif­fé­rentes exigences. De nom­breuses 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 in­ter­pré­table.

À quoi sert R melt() ?

R melt() est une fonction du package reshape2 pour res­truc­tu­rer les data frames, en par­ti­cu­lier lors du passage d’un format large à un format allongé. Dans le format large, les variables sont or­ga­ni­sées en colonnes séparées, tandis que le format long offre une meilleure pré­sen­ta­tion pour les analyses et les vi­sua­li­sa­tions.

R melt() est un outil essentiel pour la trans­for­ma­tion des données. L’uti­li­sa­tion de melt() est par­ti­cu­liè­re­ment per­ti­nente lorsque les in­for­ma­tions sont dis­po­nibles dans un format large, mais qu’un format long est né­ces­saire pour des analyses ou des gra­phiques spé­ci­fiques. Ce processus de res­truc­tu­ra­tion augmente la flexi­bi­lité et l’adap­ta­bi­lité des data frames afin de permettre une uti­li­sa­tion optimale de dif­fé­rents outils d’analyse R et bi­blio­thèques de vi­sua­li­sa­tion.

Syntaxe de R melt()

La fonction melt() de R peut être per­son­na­li­sée à l’aide de dif­fé­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 res­truc­turé.
  • na.rm : un argument optionnel qui a la valeur par défaut FALSE. S’il est défini sur TRUE, les valeurs man­quantes (NA) seront sup­pri­mées de l’ensemble de données res­truc­turé.
  • value.name : cet argument optionnel permet de spécifier le nom de la colonne qui con­tien­dra les valeurs de la variable res­truc­tu­rée dans le nouvel ensemble de données.
  • id.vars : il s’agit d’un argument fa­cul­ta­tif qui indique quelles colonnes doivent être con­ser­vées comme iden­ti­fiants. 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 ap­pli­quons main­te­nant la fonction melt() et con­ver­tis­sons 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 res­truc­tu­ré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 res­truc­turé les données du data frame dans un format long. La colonne ID a été conservée comme iden­ti­fiant, la colonne Variable contient les noms de colonne originaux A et B, et la colonne Value affiche les éléments cor­res­pon­dants. En raison de na.rm = FALSE, il reste des valeurs man­quantes (NA).

Supprimer NA avec R melt()

Vous pouvez supprimer ra­pi­de­ment et fa­ci­le­ment les valeurs man­quantes dans les cadres de données avec l’option na.rm=True.

Nous dé­fi­nis­sons 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

Main­te­nant, nous trans­for­mons 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 main­te­nant 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 ma­ni­pu­la­tion de chaînes de ca­rac­tères dans R, nous vous re­com­man­dons les tutoriels R substring() et R paste() de notre Digital Guide.

Hé­ber­ge­ment Web
Hé­ber­ge­ment Web de pointe au meilleur prix
  • 3x plus rapide, 60 % d'éco­no­mie
  • Haute dis­po­ni­bi­lité >99,99 %
  • Seulement chez IONOS : jusqu'à 500 Go inclus
Aller au menu principal