R語言實現單因素方差分析帶字母的顯著性標記


這篇文章不是我寫的,至少代碼不是:

原作者網站:r 語言快速出圖——單因素方差帶字母顯著性標記 - 簡書 (jianshu.com)

我只是把我需要的部分扒了下來

我的數據形式:

 

 然后保存了txt格式

代碼如下:(原作者注釋已經寫的很清楚了)

#加載我的工作目錄
setwd("C:/Users/lbzzj/Desktop")
#讀取數據,換成自己的文件名即可
data <- read.table("株高.txt",sep="\t",header=TRUE)
#這一句的意思是:將你的分組信息轉化為factor,不然軟件在運算過程種識別不了
data$物種組合 <- as.factor(data$物種組合)
#查看導入表格中發病率這一列的數據類型
class(data$物種組合)
#這里出現 factor 就可以下一步了


#方差齊性檢驗
#法1bartlett.test
nom <- bartlett.test(data$株高~data$物種組合,data = data)
nom


#法2
install.packages("car")
library(car)
nom1<-leveneTest(data$株高~data$物種組合,data = data)
nom1
#最后兩個的p.value大於0.05 說明方差是齊性,可以進行下一步分析


#####單因素方差分析,整體來看差異顯著
oneway<-aov(data$株高~data$物種組合,data = data)
anova(oneway)

#多重比較
# LSD法(Fisher’s Least Significant Difference)
# LSD法檢驗處微小的差異,比較方便的是直接得出顯著行標記,不需人工標記
install.packages("agricolae")
library("agricolae")
out <- LSD.test(oneway,"data$物種組合",p.adj="none")
out

#整理繪圖需要的表格
mar<-out$groups
rownamemar<-row.names(mar)
newmar<-data.frame(rownamemar,mar$`data$株高`,mar$groups)
sort<-newmar[order(newmar$rownamemar),]
# 將groups的數據框按列名排序,目的是保持與均值標准差的數據一一對應
rowname<-row.names(out$means)
mean<-out$means[,1]
sd<-out$means[,2]
marker<-sort$mar.groups
plotdata<-data.frame(rowname,mean,sd,marker)
plotdata

 

 

可視化
install.packages("ggplot2")
library("ggplot2")
p1<-ggplot(plotdata,aes(x=factor(rowname),y=mean))+geom_bar(position=position_dodge(0.6),width = 0.5,stat = "identity")
p1
p2<-p1+geom_errorbar(aes(ymin=mean-sd,ymax=mean+sd),position=position_dodge(0.6),width=0.2)
p3<-p2+geom_text(aes(x=factor(rowname),y=mean+sd+2.0,label=marker),size=3,position= position_dodge(0.6))
p3
p4<-p3+xlab("物種組合")+ylab("株高(cm)")
p4
p5<-p4+coord_cartesian(ylim= c(0,50),expand = FALSE)
p5
#更改y軸顯示范圍,這里的expand默認為TRUE
mytheme<-theme_bw()+theme(axis.title =element_text(size = 12),
axis.text =element_text(size=12),
panel.grid.major =element_line(color ="white"),
panel.grid.minor =element_line(colour = "white"),
axis.text.x =element_text(size = 12,angle=0,vjust=0,hjust=0,color = "black"),
axis.text.y =element_text(size = 12,color ="black"),)
p5+mytheme

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM