Ich muss einen großen Datenrahmen transponieren und habe folgendes verwendet:
df.aree <- t(df.aree)
df.aree <- as.data.frame(df.aree)
Folgendes erhalte ich:
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
Mein Problem sind die neuen Spaltennamen (10428, 10760, 12148, 11865), die ich entfernen muss, da ich die erste Zeile als Spaltennamen verwenden muss.
Ich habe es mit col.names()
Funktion versucht , aber ich habe nicht das bekommen, was ich brauche.
Hast du irgendwelche Vorschläge?
BEARBEITEN
Danke für Ihren Vorschlag!!! Damit erhalte ich:
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
Jetzt muss ich die Zeilennamen (GS ..) in eine Faktorspalte umwandeln ....
colnames(df.aree)<-df.aree[1,];df.aree<-df.aree[2:nrow(df.aree),]
?t
Der Datenrahmen ist auch ziemlich ineffizient. Wenn Sie können, verwenden Sie Matrix.Antworten:
Sie sollten den data.frame besser nicht transponieren, während sich die Namensspalte darin befindet - alle numerischen Werte werden dann in Zeichenfolgen umgewandelt!
Hier ist eine Lösung, bei der Zahlen als Zahlen beibehalten werden:
quelle
quelle
Sie können die
transpose
Funktion aus derdata.table
Bibliothek verwenden. Einfache und schnelle Lösung, dienumeric
Werte wie hältnumeric
.quelle
setnames(t_mtcars, rownames(mtcars))
wäre derdata.table
-Wege von Namen auf einem data.table (und bei Verwendung ein Einstellungdata.table
Objekt , das Sie das nicht eingestellt würderownames
)Nutzen Sie
as.matrix
:quelle