Erstelle Spalten aus Faktoren und zähle [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Wie bekomme ich eine Notfalltabelle? 6 answersSchnellere Berechnungsmethoden für Frequenzen und Casts von Long zu Wide 4 Antworten

Ein scheinbar einfaches Problem hält mich sehr beschäftigt.

Ich habe einen Datenrahmen:

> df1
  Name Score
1  Ben     1
2  Ben     2
3 John     1
4 John     2
5 John     3

Ich möchte eine Zusammenfassung der Tabelle wie folgt erstellen:

> df2
  Name Score_1 Score_2 Score_3
1  Ben       1       1       0
2 John       1       1       1

So muss df2 (i) nur eindeutige "Namen" anzeigen und (ii) Spalten aus den eindeutigen Faktoren in "Punktzahl" erstellen und (iii) zählen, wie oft eine Person diese Punktzahl erhalten hat.

Ich habe versucht

df2 <- ddply(df1, c("Name"), summarise
          ,Score_1 = sum(df1$Score == 1)
          ,Score_2 = sum(df1$Score == 2)
          ,Score_3 = sum(df1$Score == 3))

was produziert:

  Name Score_1 Score_2 Score_3
1  Ben       2       2       1
2 John       2       2       1

So mein Versuch zählt falschall Vorkommen anstatt "pro Gruppe" zu zählen

BEARBEITEN Wie aus den Kommentaren hervorgeht, auch ausprobiertreshape (möglicherweise einfach falsch):

> reshape(df1, idvar = "Name", timevar = "Score", direction = "wide")
  Name
1  Ben
3 John

Für den Anfang fehlt die Spalte "Score", aber schlimmer als das, aus meiner Forschung überreshape, Ich bin nicht davon überzeugt, dass ich ein @ bekomAnzah jedes Faktors, das ist der springende Punkt.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage