Transponieren Daten von Gruppen in R
Ich habe Daten in folgender Struktur:
x <- read.table(header=T, text="
X Y D S
a e 1 10
a e 2 20
a f 1 50
b c 1 40
b c 2 30
b c 3 60
b d 1 10
b d 2 20")
Und ich möchte, um das folgende Ergebnis:
X Y 1 2 3
a e 10 20
a f 50
b c 40 30 60
b d 10 20
Sich für jede Kombination von Spalten X
und Y
ich möchte das transponieren von Daten in der Spalte S
durch die Reihenfolge, in der Spalte D
.
Dachte ich xtabs()
funktionieren wird, aber ich denke nicht so, mein bester-version:
xtabs(formula=S~Y+D,data=x)
Mit dem Ergebnis:
D
Y 1 2 3
c 40 30 60
d 10 20 0
e 10 20 0
f 50 0 0
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten füllen die leeren Einträge mit
0
stattNA
(dies ist die Standardeinstellung), dannEiner Lösung in base-R:
Den beiden anderen Antworten sind sehr gut, aber für was es Wert ist, da Sie erwähnten Sie begann Ihre versuche mit
xtabs
Sie kann in der Nähe erhalten, was Sie suchen mit einer Kombination vonxtabs
undftable
. Aber das Ergebnis wird alle faktorstufenAlternativ können Sie etwas wie das hier tun: