毎月の取引から上位n件を拾い出す
一年分の取引DBがあり、その中から各月の上位n件を取り出すような場合、
取引DB |> group_by(month = floor_date(取引日, by=month)) |> slice_max( order_by = 取引金額 n = 3 #例えば ) |> ungroup
リストの中のグループから最新日付のものを取り出す
df <- data.frame(id = c(1, 1, 1, 2, 2, 2, 3, 4, 4, 4), treat = c("1","0","1", "1", "0", "1", "1", "0","1", "1"), day = c("2022-09-01", "2022-09-02", "2022-09-03", "2022-09-01", "2022-09-02", "2022-09-03", "2022-09-01", "2022-09-01", "2022-09-02", "2022-09-03"))
df |> mutate(day = lubridate::date(day)) |> group_by(id) |> slice_max(day) # A tibble: 4 × 3 # Groups: id [4] id treat day <dbl> <chr> <date> 1 1 1 2022-09-03 2 2 1 2022-09-03 3 3 1 2022-09-01 4 4 1 2022-09-03
Last updated 2022-09-20 | auditR (c) N.Nawata