2016-10-30 8 views
1

Ich habe Datensatz, einschließlich 4 Spalten: Datum, Quelle Schauspieler (3 Hauptdarsteller, codiert A, B, C), Target Actor (4 Hauptdarsteller, codiert D, E, F, G), Aktion (5 Arten von Aktionen, codiert von 0 bis 4). Ich möchte die Gesamtzahl aller Arten von Aktionen für jeden Akteur des Quellakteurs - Zielakte nach Datum summieren. Zum Beispiel:R xts Summe mehrere Fächer

Date  SourceActor Target Actor Action Freq 

1-1-2011 A    E   0  
1-1-2011 B    G   1   
2-1-2011 A    F   4 

versuchte ich xts aber es zählt alle die Anzahl der Aktionen, die von Datum, unabhängig von Quelle Schauspieler und Ziel Schauspieler, so dass ich nicht die Gesamtzahl der Aktion für jede Quelle Schauspieler bekommen -Ziel-Schauspieler-Kombination. Schätze all die Hilfe.

+1

Willkommen bei Stack Overflow! Im 'r' -Tag fordern wir an, dass Sie Daten mit 'dput()' gemeinsam nutzen, insbesondere für Daten oder Zeitreihen, da es Klasseninformationen speichert und die Reproduzierbarkeit erleichtert. Sie können den Mauszeiger über das 'r'-Tag bewegen, um weitere Informationen zu erhalten. Außerdem scheinen Sie 4 Spalten, aber 5 Header zu haben. –

+0

Wenn Sie nur die Summe von 'Action' für jedes Triplet' (Date, SourceActor, TargetActor) 'berechnen wollen, können Sie' dplyr' verwenden. Unter der Annahme, dass sich Ihre Daten in einem Datenrahmen 'df' befinden, ist dies:' Ergebnis <- df %>% group_by (Datum, QuellAktor, ZielAktor)%>% zusammenfassen (Freq = Summe (Aktion)) ' – aichao

Antwort

1

Sie können keine nicht-numerische Daten in einem xts Objekt als ein xts sind immer eine Matrix (und damit von ‚gleichen Typen für alle Spalten‘) und ein Indexvektor.

So wird Ihr Date zu einer ... weniger nützlichen Zeichenmatrix.

Ich würde vorschlagen, data.table zu verwenden.