summariseの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!データを要約する

データをグループ分けして要約するには、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を使わなくても演算できるケースもある。