I haben folgende Daten:Zähl- und Wählteil erste Reihe von Gruppe
df <- data.frame(id = c(1, 1, 2, 2, 2), desc = c("a1", "a2", "b1", "b2", "b3"))
Ich möchte von ID zählen und die erste Reihe der DESC innerhalb jeder ID-Gruppe aus. Das heißt, geben Sie einen Datenrahmen wie folgt zurück.
id count desc
1 2 a1
2 3 b1
Gibt es eine einfache Möglichkeit, es mit dplyr-Paket zu tun? Können Rohre + group_by()
+ summarise()
die Arbeit tun, ohne filter()
und join()
zu verwenden?
Stata tun kann als:
collapse (count) count=id (first) desc, by(id)
Versuchen 'group_by()' + 'slice()' –
'df%>% group_by (id) %>% muate (count = n())%>% slice (1) ' – zx8754
Mit' data.table', 'setDT (df) [,. (Count = .N, first = desc [1]) , by = id] 'wird funktionieren. – lmo