Umformen von Daten mit dem Paket data.table
Ich habe die gleiche Frage vor ein paar Tagen gestellt (Klick hier), erwähnte aber nicht, dass ein Ergebnis mitdata.table
wäre dankbar
Die "Aggregat-Lösung" funktioniert einwandfrei, obwohl es ziemlich langsam ist! Ich suche nach einem schnelleren Weg, um dies zu lösen.
Ich möchte den folgenden data.frame umformen:
df <- data.frame(x=c("p1","p1","p2"),y=c("a","b","a"),z=c(14,14,16))
df
x y z
1 p1 a 14
2 p1 b 14
3 p2 a 16
so dass es so aussieht:
df2 <- data.frame(x=c("p1","p2"),a=c(1,1),b=c(1,0),z=c(14,16))
x a b z
1 p1 1 1 14
2 p2 1 0 16
Die Variabley
imdf
sollte gebrochen werden, so dass seine Elemente neue Variablen sind, wobei jeder Dummy codiert ist. Alle anderen Variablen (in diesem Fall nurz
) sind für jede Person gleich (p1, p2 usw.). Die einzige Variable, bei der eine bestimmte Person p unterschiedliche Werte hat, isty
.
Der Grund, warum ich das möchte, ist, dass ich dieses Dataset mit anderen nach Variablen zusammenführen mussx
. Es muss eine Zeile pro Person sein (p1
,p2
usw).