如何解决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()
,
有很多方法可以做到,但我不能肯定地说,不试一会或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轴上的中断。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。