2016-03-22 15 views
0

Ich verwende NFL play-by-play data from the 2013 season und ich bin auf der Suche nach Fang Erfolgsquote von Wide Receivern. Im Wesentlichen habe ich vier Variablen von Interesse: Gezielter Empfänger, Passabstand, Ziel und Empfang. Ich würde gerne einen Datensatz erhalten, der nach Zielempfänger und Passdistanz unterteilt ist, wobei Ziele und Empfänge für jede der zwei Zielempfänger- und Passdistanzkombinationen (d. H. Empfänger 1 kurz, Empfänger 1 lang) zusammengefasst sind (nur eine einfache Zählung).Aggregation von Daten durch zwei Variablen mit R und dplyr

Vielen Dank für Ihre Hilfe,

CLR

+0

Was haben Sie versucht? Warum hat es nicht funktioniert? – Heroka

+1

Willkommen bei StackOverflow! Bitte lesen Sie die Informationen über [wie man eine gute Frage stellt] (http://stackoverflow.com/help/how-to-ask) und wie man ein [reproduzierbares Beispiel gibt] (http://stackoverflow.com/questions/ 5963269/how-to-make-a-great-r-reproduzierbares Beispiel/5963610). Dies wird es anderen sehr erleichtern, Ihnen zu helfen. – Jaap

Antwort

0

Zuerst nehmen Sie die Tabelle df und nur die Spalten halten, die relevant sind (gezielte Empfänger, Pass Entfernung, Ziel und Empfang).

df <- select(df, `Targeted Receiver`, `Pass Distance`, `Target`, `Reception`) 

Dann entfernen die Zeilen, in denen kein Empfänger ist (beispielsweise ein Laufspiel).

df <- df[!is.na(df$`Targeted Receiver`), ] 

Danach verwenden group_by von dplyr, so dass Ihre Daten am Zielempfänger und Pass Entfernung Ebene gruppiert sind.

grouped <- group_by(df, `Targeted Receiver`, `Pass Distance`) 

Schließlich verwenden die summarise Funktion die Anzahl des Ziels und die Summe der Rezeption zu erstellen.

per_rec <- summarise(grouped, Target = n(), Reception = sum(Reception)) 

Die Daten werden wie folgt aussehen:

Targeted Receiver Pass Distance Target Reception 
       (chr)   (chr) (int)  (dbl) 
1  A.J. Green   Deep  50  21 
2  A.J. Green   Short 128  77 
3  A.J. Jenkins   Deep  6   2 
4  A.J. Jenkins   Short  11   6 
5  Aaron Dobson   Deep  23   6 
6  Aaron Dobson   Short  49  31 
+0

Bitte erläutern Sie, wie dieser Code die Frage beantwortet (diese Antwort befand sich in der Bewertungswarteschlange "Niedrige Qualitätsposten"). – JAL

+0

Vielen Dank für die Antwort! – CLR

Verwandte Themen