2016-04-15 5 views
0

Ich habe einen DF wie folgt:Wie wird in R transponiert/umgeformt, wobei die eindeutigen Werte einer Spalte beibehalten werden?

'data.frame': 6082 obs. of 3 variables: 
$ ID : int 23418 23499 24468 24492 24574 24772 25020 25070 25299 25564 ... 
$ Week: Factor w/ 12 levels "77-83 DIM","84-90 DIM","91-97 DIM",.... 
$ kg : num 55.4 56.1 54.9 48 52.8 ... 

Dies ist ein Beispiel:

ID  Week  kg 
1 23418 105-111 DIM 55.43655 
2 23499 105-111 DIM 56.11586 
3 24468 105-111 DIM 54.85228 
4 24492 105-111 DIM 47.96415 
5 24574 105-111 DIM 52.80463 
6 24772 105-111 DIM 49.99884 

Es ist ein ebenso angebracht Bild.

Ich habe 610 verschiedene ID-Nummern, die bis zu 12 Mal (Wochen) wiederholt werden. Aber nicht alle ID-Nummern haben 12 Wochen. Ich brauche eine DF mit 13 Spalten: ID, 77-83 DIM, 84-90 DIM, 91-97 DIM ... Dies bedeutet eine Spalte pro Woche und eine einzelne Spalte für die ID. Der Inhalt der Tabelle muss mit Kg-Werten gefüllt werden.

Es tut mir leid, wenn ich nicht klar genug bin. Kann mir bitte jemand helfen? Dank

enter image description here

+0

Werfen Sie einen Blick auf: http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example. Bitte benutzen 'dput (data)' weil Screenshots kaum reproduzierbar sind – Rentrop

Antwort

3

Sie können auch diese mit data.table Paket tun.

Annahme: df ist die data.frame

Zunächst müssen Sie data.frame zu data.table konvertieren von:

> dt <- setDT(df) 

Danach werden Sie diesen Befehl anwenden können zur Ausgabe erhalten gewünscht :

> dcast(dt,ID~Week,value.var='kg') 
+1

Es hat perfekt funktioniert! Du hast mein dreitägiges Problem in 3 Sekunden gelöst. Vielen Dank!!!!!!!!!!! –

Verwandte Themen