Je dois transposer un grand bloc de données et j'ai donc utilisé:
df.aree <- t(df.aree)
df.aree <- as.data.frame(df.aree)
Voici ce que j'obtiens:
df.aree[c(1:5),c(1:5)]
10428 10760 12148 11865
name M231T3 M961T5 M960T6 M231T19
GS04.A 5.847557e+03 0.000000e+00 3.165891e+04 2.119232e+04
GS16.A 5.248690e+04 4.047780e+03 3.763850e+04 1.187454e+04
GS20.A 5.370910e+03 9.518396e+03 3.552036e+04 1.497956e+04
GS40.A 3.640794e+03 1.084391e+04 4.651735e+04 4.120606e+04
Mon problème est les nouveaux noms de colonne (10428, 10760, 12148, 11865) que je dois éliminer car je dois utiliser la première ligne en tant que noms de colonne.
J'ai essayé avec la fonction col.names()
mais je n'ai pas obtenu ce dont j'avais besoin.
Avez-vous une suggestion?
MODIFIER
Merci pour votre suggestion !!! En l'utilisant, j'obtiens:
df.aree[c(1:5),c(1:5)]
M231T3 M961T5 M960T6 M231T19
GS04.A 5.847557e+03 0.000000e+00 3.165891e+04 2.119232e+04
GS16.A 5.248690e+04 4.047780e+03 3.763850e+04 1.187454e+04
GS20.A 5.370910e+03 9.518396e+03 3.552036e+04 1.497956e+04
GS40.A 3.640794e+03 1.084391e+04 4.651735e+04 4.120606e+04
GS44.A 1.225938e+04 2.681887e+03 1.154924e+04 4.202394e+04
Maintenant, je dois transformer les noms de ligne (GS ..) dans une colonne de facteur ....
Vous feriez mieux de ne pas transposer le nom data.fr lorsque le nom de la colonne est dedans - toutes les valeurs numériques seront alors transformées en chaînes!
Voici une solution qui conserve les nombres sous forme de nombres:
# first remember the names
n <- df.aree$name
# transpose all but the first column (name)
df.aree <- as.data.frame(t(df.aree[,-1]))
colnames(df.aree) <- n
df.aree$myfactor <- factor(row.names(df.aree))
str(df.aree) # Check the column types
df.aree <- as.data.frame(t(df.aree))
colnames(df.aree) <- df.aree[1, ]
df.aree <- df.aree[-1, ]
df.aree$myfactor <- factor(row.names(df.aree))
Vous pouvez utiliser la fonction transpose
de la bibliothèque data.table
. Solution simple et rapide qui conserve les valeurs de numeric
comme numeric
.
library(data.table)
# get data
data("mtcars")
# transpose
t_mtcars <- transpose(mtcars)
# get row and colnames in order
colnames(t_mtcars) <- rownames(mtcars)
rownames(t_mtcars) <- colnames(mtcars)