- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!データを要約する
データをグループ分けして要約するには、group_by() + summarise() が便利
#元になるデータ(3種類のサイコロの出る目の数、100回分)
d <- data.frame (A = as.integer( runif(100, min = 1, max = 7) ),
B = as.integer( runif(100, min = 1, max = 7) ),
C = as.integer( runif(100, min = 1, max = 7) ))
# 確率を求める
d |>
pivot_longer(names_to = "ABC", cols = c("A", "B", "C")) |> # データを縦長に変換
group_by(ABC, value) |> # サイコロABCごと出る目valueごとにグループ化
summarise(N = n()) |> # ここでグループ単位で合計が出される(グループvalueが一段解除される)
mutate(Rate = N/sum(N)) |> # グループABC単位でsumが計算されるためRateはサイコロごと
pivot_wider(names_from = ABC, values_from = Rate)
:参考:
* https://notchained.hatenablog.com/entry/2020/06/28/134109
!group_byの問題点もある
詳しくはこちら
https://blog.atusy.net/2024/12/19/dplyr-groupby/
summarize()のオプションにある".by="を使うと、group_byを使わなくても演算できるケースもある。