Comment transposer le DataFrame dans R

Comment Transposer Le Dataframe Dans R



La transposition d'un ensemble de données est l'une de ces opérations qui reforme les données pour répondre aux exigences particulières de l'analyse. La transposition d'un ensemble de données implique l'inversion des lignes et des colonnes de l'ensemble de données, ce qui donne un nouvel ensemble de données avec des colonnes et des lignes commutées. R fournit quelques fonctions pour transposer un jeu de données. Dans cet article, nous aborderons les différentes méthodes de transposition des DataFrames dans R.

Exemple 1 : transposer le DataFrame à l'aide de la fonction T() dans R

La fonction t() est une fonction intégrée de R qui est utilisée pour transposer un DataFrame. Cependant, il convertit le DataFrame en matrice, de sorte que toute colonne non numérique est transformée en chaînes de caractères. Considérez le script R suivant pour transposer le DataFrame :







MesDonnées = data.frame(c1 = c(1, 2, 3, 4, 5),

c2 = c(6, 7, 8, 9, 10),
c3 = c(11, 12, 13, 14, 15))

row.names(MesDonnées) = c('r1','r2','r3','r4','r5')

t(MesDonnées)

Ici, nous déclarons le vecteur MyData et lui attribuons data.frame(). Nous insérons les exemples de données qui contiennent trois colonnes avec les valeurs dans la fonction data.frame(). Après cela, nous utilisons la fonction 'row.names()' et définissons les noms de ligne pour les valeurs du DataFrame 'MyData'. Enfin, nous transposons le DataFrame « MyData » à l'aide de la fonction t().



La sortie suivante montre la transposition du DataFrame où les noms de ligne du DataFrame d'origine deviennent les noms de colonne du DataFrame transposé, et les noms de colonne du DataFrame d'origine sont perdus dans la transposition :







Exemple 2 : transposer le DataFrame à l'aide de la fonction Transpose() dans R

La fonction transpose() du package 'data.table' peut également être utilisée pour transposer un DataFrame et renvoie un DataFrame. Par conséquent, nous devons nous assurer que le 'data.table' est installé dans R. S'il n'est pas trouvé, nous pouvons l'installer avec la commande suivante :

install.packages('data.table')

Maintenant, nous pouvons facilement importer le package 'data.table' pour accéder à la fonction transpose () dans R pour transposer le DataFrame. Considérez le code R suivant où la fonction transpose() est appelée pour transposer le DataFrame :



df <- data.frame(A = c(1:5),

B = c(6:10),
C = c(11:15))


row.names(df) <- c('r1', 'r2', 'r3', 'r4', 'r5')

df

Ici, nous créons le DataFrame 'df' avec trois colonnes et cinq lignes où chaque colonne contient une séquence de nombres de 1 à 5, 6 à 10 et 11 à 15, respectivement. De plus, nous attribuons les noms de ligne DataFrame à l'aide de la fonction row.names(). Après cela, nous imprimons le DataFrame d'origine sur la console.

Le DataFrame d'origine est affiché à l'écran ici :

Ensuite, nous transposons le DataFrame 'df' d'origine en changeant les lignes et les colonnes du DataFrame.

bibliothèque (data.table)

df_trans <- transpose(df)

noms de ligne (df_trans) <- noms de colonne (df)

noms de colonne (df_trans) <- noms de ligne (df)

df_trans

Pour cela, nous chargeons d'abord la bibliothèque « data.table » qui fournit les outils pour travailler avec les données tabulaires dans R. Ensuite, la fonction transpose() est utilisée depuis la bibliothèque « data.table ». Le DataFrame transposé résultant est affecté à une nouvelle variable qui est 'df_t'. Après cela, nous attribuons les noms de colonne du DataFrame 'df' d'origine en tant que noms de ligne au DataFrame 'df_trans' transposé à l'aide de la fonction rownames(). Ensuite, les noms de ligne du DataFrame 'df' d'origine sont attribués en tant que noms de colonne au DataFrame 'df_trans' transposé à l'aide de la fonction colnames().

Ainsi, la transposition DataFrame d'origine est obtenue dans la sortie. Il représente chaque cellule dans le DataFrame transposé dans lequel il contient la même valeur que la cellule correspondante dans le DataFrame d'origine mais dans une position différente en raison de la transposition.

Exemple 3 : transposer le DataFrame à l'aide de la fonction Tidyr Library Gather() dans R

Le package tidyr de R peut être utilisé pour transposer un DataFrame. Cette méthode est utile lorsque nous voulons convertir un DataFrame du format large au format long, puis revenir au format large avec des lignes et des colonnes échangées. Il fournit plusieurs fonctions pour transformer et réorganiser les données. Avant cela, nous devons télécharger le package tidyr spécifiquement à l'aide de la commande suivante :

install.packages('tidyr')

Considérons le code R suivant. Nous utilisons la fonction rassemble() de ce package pour transposer le DataFrame large plus longtemps :

bibliothèque (rangement)

n = 10

tidy_df = data.frame(

ID = c(1:n),
Exam1_Marks = c(73, 219, 86, 192, 99,
188, 72, 35, 91, 165),
Exam2_Marks = c(217, 89, 66, 334, 99,
101, 108, 233, 45, 300),
Exam3_Marks = c(39, 101, 209, 289, 176,
120, 89, 119, 199, 96))

tidy_df

Ici, un DataFrame 'large' est converti en un DataFrame 'long' à l'aide de tidyr. Tout d'abord, nous créons un DataFrame 'tidy_df' avec trois colonnes. Chacune de ces colonnes contient 10 valeurs.

Le long DataFrame est affiché dans l'écran de sortie suivant :

Ensuite, nous passons le DataFrame 'tidy_df' à la fonction rassemble () avec l'opérateur de pipe '%>%'. La fonction rassemble () de tidyr est utilisée pour transformer 'tidy_df' en un long DataFrame. La fonction rassemble () prend des entrées avec le nom 'Exams' qui indique une nouvelle colonne pour contenir les noms de variables créés dans la transformation. 'Marks' spécifie la colonne qui rassemble les 'Exam1_Marks' et 'Exam2_Marks'.

long <- tidy_df %>%

rassembler(examens, notes,
Exam1_Marks :Exam2_Marks)


long

La sortie affiche le long DataFrame sur la console qui a maintenant un format 'long' avec trois colonnes :

Exemple 4 : transposer le DataFrame à l'aide de la fonction Pivot_Wider() dans R

La prochaine fonction avancée que nous utilisons pour transposer le DataFrame est la fonction pivot_wider(). Le pivot_wider() est une fonction du package tidyr en R qui nous permet de transformer un DataFrame « long » en un DataFrame « large ». La fonction prend trois arguments principaux qui sont discutés dans le code suivant de R :

bibliothèque (rangement)

df <- data.frame(

identifiant = c(1, 2, 3, 1, 2, 3),
var = c('v1', 'v1', 'v1', 'v2', 'v2', 'v2'),
val = c(4, 5, 6, 7, 8, 9)


)

df

Ici, nous chargeons d'abord le package tidyr à l'aide de la fonction library(). Ensuite, nous définissons l'exemple de DataFrame dans 'df'. Le DataFrame 'df' a trois colonnes qui contiennent des valeurs différentes, en conséquence. L'exemple de DataFrame peut être vu dans la sortie suivante :

Après cela, la fonction pivot_wider() de tidyr est utilisée pour transformer 'df' en 'df_wide'.

df_wide <- pivot_wider(df, names_from = var, values_from = val)

df_wide

La fonction pivot_wider() prend ici trois arguments. Tout d'abord, il faut que le DataFrame 'df' soit transformé. Ensuite, l'argument names_from définit le nom de colonne à utiliser pour les nouveaux noms de variable. Enfin, l'argument values_from spécifie le nom de la colonne à utiliser pour les nouvelles valeurs.

La sortie suivante représente la transposition du DataFrame long dans le DataFrame large :

Conclusion

Nous avons utilisé différentes manières de transposer le DataFrame dans R. Le premier exemple est défini avec la méthode intégrée t(). Tous les autres exemples avaient besoin des packages à importer afin que nous puissions utiliser leurs fonctions pour la transposition DataFrame. Cependant, la meilleure méthode à utiliser dépend de la situation spécifique et de la structure de données avec lesquelles vous travaillez.