💨

Rを使って連続データを任意のまとまりで要約したい

2023/01/25に公開

連続データを、群ごとや時点ごとにまとめて要約したいことはよくあります。
gtsummary packageを使っても良いけど、ちょっと重いですよね。

下記のコードで簡単に軽やかに確認できます。
使うのは、tidyverse packageとgt packageです。

tab01 <- ds00 |> 
  group_by(group, item, month) |> 
  summarise(n = sum(!is.na(value)),
            mean = mean(value, na.rm = TRUE),
            SD = sd(value, na.rm = TRUE),
            min = min(value, na.rm = TRUE),
            Q1 = quantile(value, na.rm = TRUE, probs = 0.25),
            median = median(value, na.rm = TRUE),
            Q3 = quantile(value, na.rm = TRUE, probs = 0.75),
            max = max(value, na.rm = TRUE)) |> 
  mutate(across(mean:max, ~round(.x, digits = 1)))  # 小数点一桁に四捨五入

ポイントは

  • 欠測している値はカウントしない
  • 四捨五入もする

です。さらにきれいな表の形として出力するには次のコードを使います。

tab01 |> select(item, everything()) |> 
  arrange(item, group, month) |> 
  group_by(item) |> 
  gt()

group_byの設定により、項目ごとや、項目と群ごとに、といったまとまりを作れます。
説明しづらいので自分で確認してください。

Discussion