Ich habe Probleme mit der Erstellung einer neuen Variablen in meinem data.frame. Ich entschuldige mich für den Fragetitel, der vielleicht nicht sehr klar ist. Ich habe eine Datenbank, die wie folgt aussieht:Anzeige in data.frame eine bedingte Zeilenanzahl nach Gruppe
obs year type
1 2015 A
2 2015 A
3 2015 B
4 2014 A
5 2014 B
Ich möchte die aktuelle data.frame eine Spalte (freq2015) hinzuzufügen, die für das Jahr 2015 und melden das Ergebnis ohne Berücksichtigung der betrachtete Jahr die Anzahl der Zeilen nach Typ gibt so solange der Typ derselbe ist. Hier ist die Ausgabe Ich suche:
obs year type freq2015
1 2015 A 2 (there are 2 obs. of type A in 2015)
2 2015 A 2 (there are 2 obs. of type A in 2015)
3 2015 B 1 (there is 1 obs. of type B in 2015)
4 2014 A 2 (there are 2 obs. of type A in 2015)
5 2014 B 1 (there are 1 obs. of type B in 2015)
Ich weiß, wie mein data.frame
die Anzahl der Zeilen nach Art von Jahr hinzuzufügen dplyr
mit:
data <- data %>%
group_by(year, type) %>%
mutate(freq = n())
Aber dann, für das Jahr ==“ 2014" die hinzugefügte Spalte wird die Anzahl der 2014 Reihen von Rennen angezeigt werden, anstatt dass 2015
ich weiß, wie in eine neues data.frame
die Anzahl der Zeilen von Rennen für das Jahr 2015 zu isolieren:
data2015 <- dat[dat$year==2015,] %>%
group_by(type) %>%
mutate(freq2015 = n())
Aber ich weiß nicht, wie man eine Spalte (mit der Anzahl der Zeilen nach Rassen für 2015) für die gesamte data.frame bedingte auf dem Typ der gleiche (wie im Beispiel gezeigt). Ich suche nach einer Lösung, die mich daran hindern würde, die "Typ" -Modalitäten explizit zu verwenden. Das heißt, ich möchte keinen Code verwenden, der R sagt: tue dies, wenn type == A, mach das anders. Der Grund für diese Einschränkung ist, dass ich viel zu viele Typen habe.
Irgendwelche Ideen? Vielen Dank im Voraus.
Warum möchten Sie das tun? Es kann einfacher sein, einen zusammengefassten Datenrahmen der Anzahl der Jahre und Typen zu erstellen. – akash87