R统计绘图-多变量单因素非参数差异检验及添加显著性标记图

一、 数据准备

数据包括36个样本,4个处理,7个环境因子,研究目的是为了比较处理间每个环境因子是否存在差异。

# 1.1 设置工作路径
setwd("D:\\EnvStat\\stat")
getwd()#获取工作路径

# 1.2 导入数据
env = read.csv("env.csv",header = TRUE,row.names = 1,stringsAsFactors = FALSE)
dim(env)
head(env) # 第一列为分组信息,2-8列为环境因子数据

图1|环境因子及分组信息表,env.csv。行为样品名称,列为环境因子名称和分组信息,共有7个环境变量,1个分组信息。

二、 组间差异检验

2.1 单因素非参数差异检验-Kruskal-Wallis rank sum test

library(rstatix)
library(dplyr)
# 批量对7个环境因子进行kruskal-Wallis检验
for (i in 2:8){
  assign(paste(names(env[i]),"kw",sep="."),kruskal.test(env[,i],as.factor(env[,1])))
  
} # assign()将kruskal.test()的运行结果赋予指定变量名
kw = mget(paste(names(env[2:8]),"kw",sep=".")) # mget()提取变量值到kw对象
kw # 列表对象

# 将结果输出到本地
capture.output(kw,file = "kw.list.txt",append = FALSE)

图2|Kruskal-Wallis检验结果。kw列表中包含7个环境因子的kruskal-wallis检验结果。

2.2 多重比较

R统计-多变量单因素参数、非参数检验及多重比较R统计-多变量双因素参数、非参数检验及多重比较文章中都写过多重比较方法,这里就不详述了。这里使用FSA包的dunnTest函数进行Dunn test多重比较。

library(FSA)
# 批量对7个环境因子进行Dunn test多重比较
for (i in 2:8){
assign(paste(names(env[i]),"Dunn",sep = "."), dunnTest(env[,i], as.factor(env[,1]),
              method="bh")$res); # p值校正选择bh方法。
}
dunn = mget(paste(names(env[2:8]),"Dunn",sep = "."))
dunn$TN.Dunn

# 将结果输出到本地
capture.output(dunn,file = "dunn.list.txt",append = FALSE)

图3|Dunn test多重比较检验结果。dunn列表中包含7个环境因子的检验结果。

2.3 添加显著性字母标记

每个环境因子,包含4个处理,所以使用不同字母表示处理间的显著差异。同一环境因子具有相同字母处理间差异不显著。使用rcompanion包的cldList根据多重比较检验结果自动设置字符标记。

library(rcompanion)
# 字符标记,rcompanion包的cldList可以根据多重比较检验结果自动设置字符标记
for (i in 1:7){
assign(paste(names(dunn[i]),"mark",sep="."),
       cldList(P.adj ~ Comparison,
        data = dunn[[i]],
        threshold = 0.05)) # 设置显著性差异p值的阈值
}
dunn_mark = mget
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EcoEvoPhylo

值得点赞吗?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值