Цель : сгруппированы по кварталам и именам. Я хочу, чтобы количество первых имен было по количеству (см. Пример ниже). Таким образом, желаемый результат для top 1 (для приведенного ниже примера) будет:
2019 Q1 Klaus 2
2019 Q2 Karl 3
Поскольку это всего лишь игрушечный пример в будущем, я также хочу получить top 4, 5 et c by count за квартал и название. У вас есть какие-нибудь хорошие идеи, как реализовать это с data.table
(пожалуйста, не dplyr
). Большое спасибо!
library(data.table)
dt <- data.table(x = c("2019 Q1", "2019 Q1", "2019 Q1", "2019 Q2", "2019 Q2", "2019 Q2", "2019 Q2"),
y = c("Klaus", "Gustav", "Klaus", "Karl", "Karl", "Karl", "Stefan"))
# Structure of dt
# x y
# 1: 2019 Q1 Klaus
# 2: 2019 Q1 Gustav
# 3: 2019 Q1 Klaus
# 4: 2019 Q2 Karl
# 5: 2019 Q2 Karl
# 6: 2019 Q2 Karl
# 7: 2019 Q2 Stefan
dt[, .N, by = .(x, y)]
# Output:
# x y N
# 1: 2019 Q1 Klaus 2
# 2: 2019 Q1 Gustav 1
# 3: 2019 Q2 Karl 3
# 4: 2019 Q2 Stefan 1