Я пытаюсь сделать график изменений до поста для трех групп. В моем фрейме данных предварительные данные и постданные хранятся как две разные переменные, подобные этой.
pre_treat <- c(5,8,4,6,5,9,6,7,5)
post_treat <- c(2,2,4,10,9,11,4,5,3)
group <- c("A","A","A","B","B","B","C","C","C")
df <- data.frame(pre_treat = pre_treat,
post_treat = post_treat,
group = group)
> df
pre_treat post_treat group
1 5 2 A
2 8 2 A
3 4 4 A
4 6 10 B
5 5 9 B
6 9 11 B
7 6 4 C
8 7 5 C
9 5 3 C
Я хочу построить средние значения pre_treat и post_treat для каждой группы, как показано на рисунке ниже. Я также хочу построить их с групповыми гранями.





Мы могли бы сделать это таким образом. Сначала приведите данные в длинном формате. Затем вычислите среднее значение для каждой группы. Выровняйте с помощью fct_relevel из пакета forcats, а затем зарисуйте с помощью facet_wrap.
library(tidyverse)
df %>%
pivot_longer(-group) %>%
group_by(group, name) %>%
summarise(mean = mean(value)) %>%
mutate(name = fct_relevel(name, c("pre_treat", "post_treat"))) %>%
ggplot(aes(x=name, y=mean, group=1)) +
geom_line()+
facet_wrap(.~group)