- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!毎月の取引から上位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