💨
Rを使って連続データを任意のまとまりで要約したい
連続データを、群ごとや時点ごとにまとめて要約したいことはよくあります。
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