web-dev-qa-db-fra.com

Conversion de lignes en colonnes et de colonnes en lignes à l'aide de R

J'ai une trame de données avec des noms de ligne et des noms de colonne uniques. Je veux convertir les lignes en colonnes et la colonne en lignes.

Par exemple, ce code:

starting_df <- data.frame(row.names= c(LETTERS[1:4]),
                          a = c(1:4),
                          b = seq(0.02,0.08,by=0.02),
                          c = c("Aaaa","Bbbb","Cccc","Dddd")
                )

donne les résultats suivants:

> starting_df
  a    b    c
A 1 0.02 Aaaa
B 2 0.04 Bbbb
C 3 0.06 Cccc
D 4 0.08 Dddd

Je veux le convertir en un autre bloc de données contenant exactement les mêmes données, sauf que ce qui était auparavant des lignes était maintenant des colonnes et vice versa:

> final_df
     A    B    C    D
a    1    2    3    4
b 0.02 0.04 0.06 0.08
c Aaaa Bbbb Cccc Dddd
12
Christopher Bottoms

Utilisez simplement la fonction de base transposet, entourée de as.data.frame:

final_df <- as.data.frame(t(starting_df))
final_df
     A    B    C    D
a    1    2    3    4
b 0.02 0.04 0.06 0.08
c Aaaa Bbbb Cccc Dddd

Ci-dessus mis à jour. Comme l'a souligné docendo discimus, t renvoie une matrice. Comme Mark a suggéré de l'envelopper avec as.data.frame récupère une trame de données au lieu d'une matrice. Merci!

26
Christopher Bottoms