R均值按组排序用ggplot绘制折线图

问题描述

我有一些这样的数据。最终将有20场培训。

Intensitaet.Auswertung <- data_Auswertung [,c("Type","training1","training2","training3","training4","training5")] 

    group                   `training1`    `training2`    `training3`    `training4`    `training5`
   <chr>                       <dbl>          <dbl>          <dbl>          <dbl>          <dbl>
 1 Group1                        6              6              4              2              8
 2 Group1                        4              5              5              5              7
 3 Group2                        5              3              3              3              6
 4 Group1                        5              3              4              3              6
 5 Group1                        5              7              8              6              7
 6 Group2                        4              3              4              5              7
 7 Group2                        5              5              5              5              7
 8 Group1                        7              8              6              5              8
 9 Group2                        3              4              4              4              8
10 Group2                        6              5              4              5              4
# ... with 11 more rows

我想用每组训练的平均值绘制线形图,按组分组。

我希望有人可以帮助我,我在R中是个新手。

解决方法

你的意思是这样吗?

library(tidyverse)
Intensitaet.Auswertung %>% 
    group_by(group) %>% 
    summarise(across(everything(),mean)) %>% 
    pivot_longer(cols = -group,names_to = "training",values_to = "mean") %>% 
    mutate(training = as.numeric(gsub("[^0-9]","",training))) %>% 
    ggplot(aes(x=training,y = mean,group = group,color = group)) + 
    geom_line()

enter image description here

,

有很多方法可以做到,但我不能肯定地说,不试一会或2。在这里有些人可以,但是通常首选与op一起使用可重现的小型df。 。您可以使用dplyr / tidyverse的mutate()命令,也可以将apply()函数与单独的函数一起使用,如下所示:

df<-apply(your_data,2,function(x) if (your_data[,1]=="Group1") {mean} else {mean}) 但是我不知道如果不先测试就可以使用。您还可以像这样使用which()命令或ifelse()

df<-ifelse(your_data[,1]=="Group1",mean(yourdata[,2:length(your_data)]),2:length(your_data)]))

但还是不知道是否可以尝试/摆弄

,

Test
Intensitaet.Auswertung %>%
group_by(group) %>%
summarise(across(everything(),mean)) %>%
pivot_longer(cols = -group,values_to = "mean") %>%
mutate(training = as.numeric(gsub("[^0-9]",training))) %>%
ggplot(aes(x=training,color = group)) +
geom_line() +
scale_colour_manual(values = c("lightskyblue","royalblue"),name = "Legende") +
ggtitle("Persönliches Intensitäslevel pro Training sortiert nach Gruppen") +
theme_bw() +
theme(axis.text.x = element_text(size = 12)) +
theme(axis.title.y = element_text(size = 15,angle = 90)) +
theme(axis.text.y = element_text(size = 12,hjust=1)) +
theme(axis.title.x = element_text(size = 15)) +
scale_y_continuous(name = "Intensität",breaks = c(0,1,3,4,5,6,7,8,9,10)) +
theme(plot.title = element_text(hjust = 0.5))

现在我有了这个漂亮的线图。 我想更改x的任何y轴标题和x轴上的中断。