我想比較條形圖中變數的均值。
這是我的資料框的一部分。
Group Gender Age Anxiety_score Depression_score IUS OBSC
1 Anxiety 0 25 32 29 12
2 Anxiety 1 48 34 28 11
3 Anxiety 0 32 48 32 12
4 Anxiety 1 24 43 26 12
5 Anxiety 1 18 44 26 15
6 Control 0 45 12 11 3
7 Control 0 44 11 11 5
8 Control 1 26 21 10 5
9 Control 1 38 12 NA 2
10 Control 0 18 13 10 1
我想創建一個條形圖,其中每個變數(性別、年齡、Anxiety_score、depression_score、IUS,...)代表一個條形,我希望每個組都有這個(焦慮與控制彼此相鄰,而不是堆疊)在同一張圖上。條形的高度將代表平均值。對于性別,我想要性別比例。我還想在 y 軸上映射變數。我如何在 R 中做到這一點?
uj5u.com熱心網友回復:
這類問題通常與重塑資料有關。格式應該是長格式,資料是寬格式。請參閱
資料
df1 <-
structure(list(Group = c("Anxiety", "Anxiety", "Anxiety", "Anxiety",
"Anxiety", "Control", "Control", "Control", "Control", "Control"
), Gender = c(0L, 1L, 0L, 1L, 1L, 0L, 0L, 1L, 1L, 0L), Age = c(25L,
48L, 32L, 24L, 18L, 45L, 44L, 26L, 38L, 18L), Anxiety_score = c(32L,
34L, 48L, 43L, 44L, 12L, 11L, 21L, 12L, 13L), Depression_score = c(29L,
28L, 32L, 26L, 26L, 11L, 11L, 10L, NA, 10L), IUS = c(12L, 11L,
12L, 12L, 15L, 3L, 5L, 5L, 2L, 1L)), class = "data.frame",
row.names = c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10"))
uj5u.com熱心網友回復:
你在尋找這樣的東西嗎?
library(tidyverse)
df %>%
pivot_longer(
-Group
) %>%
group_by(Group, name) %>%
summarise(Mean=mean(value, na.rm=TRUE)) %>%
ggplot(aes(x=factor(Group), y=Mean, fill=name))
geom_col(aes(group=name), position = "dodge")
geom_text(
aes(label = Mean, y = Mean 0.05),
position = position_dodge(0.9),
vjust = 0
)

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/343788.html
上一篇:根據R中的條件向繪圖添加紋理
