R语言单因素方差分析+差异显著字母法标注+逐行详细解释
- R语言单因素方差分析
代码如下
df <- read.csv("data.csv",header = TRUE,row.names = 1)
library(reshape2)
df <- melt(df,id=c())
names(df) <- c('trt', 'val')
df
aov1 <- aov(val~trt,data=df)
summary(aov1)library(agricolae)
data <- LSD.test(aov1,'trt',p.adj = 'bonferroni')#'bonferroni'#对P值进行修正
data
print(data$groups)
plot(data)
开始逐行解释:
导入数据
#导入数据
df <- read.csv("data.csv",header = TRUE,row.names = 1)
df
> dfa b c d e f k
1 3.186224 3.262900 2.397264 2.300343 1.806937 2.711331 2.945837
2 2.975125 3.068194 2.962235 2.233887 2.136561 4.185355 3.018140
3 3.150602 4.297190 2.518045 2.169607 2.473778 3.948050 2.785514
宽数据变为长数据,并且重命名
library(reshape2)
df <- melt(df,id=c())
names(df) <- c('trt', 'val')
df
> dftrt val
2 a 2.975125
3 a 3.150602
4 b 3.262900
5 b 3.068194
6 b 4.297190
7 c 2.397264
8 c 2.962235
9 c 2.518045
10 d 2.300343
11 d 2.233887
12 d 2.169607
13 e 1.806937
14 e 2.136561
15 e 2.473778
16 f 2.711331
17 f 4.185355
18 f 3.948050
19 k 2.945837
20 k 3.018140
21 k 2.785514
查看方差分析结果:
其中Pr(>F)=0.00661<0.05,说明组间存在差异显著
aov1 <- aov(val~trt,data=df)
summary(aov1)
> summary(aov1)Df Sum Sq Mean Sq F value Pr(>F)
trt 6 6.096 1.0160 5.125 0.00661 **
Residuals 13 2.577 0.1982
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
查看组间差异结果并作字母标注
library(agricolae)#需要用的包
data <- LSD.test(aov1,'trt',p.adj = 'bonferroni')#'bonferroni'#对P值进行修正
data
> data#注意这个里面内容比较多,比较杂,可以通过print(data$groups)命令只查看组间差异结果
$statisticsMSerror Df Mean CV0.1982471 13 2.867345 15.52828$parameterstest p.ajusted name.t ntr alphaFisher-LSD bonferroni trt 7 0.05$meansval std r se LCL UCL Min Max Q25 Q50 Q75
a 3.062863 0.12408098 2 0.3148389 2.382695 3.743032 2.975125 3.150602 3.018994 3.062863 3.106733
b 3.542761 0.66056761 3 0.2570649 2.987406 4.098116 3.068194 4.297190 3.165547 3.262900 3.780045
c 2.625848 0.29751332 3 0.2570649 2.070493 3.181203 2.397264 2.962235 2.457654 2.518045 2.740140
d 2.234612 0.06537102 3 0.2570649 1.679257 2.789967 2.169607 2.300343 2.201747 2.233887 2.267115
e 2.139092 0.33342770 3 0.2570649 1.583737 2.694447 1.806937 2.473778 1.971749 2.136561 2.305169
f 3.614912 0.79146850 3 0.2570649 3.059557 4.170267 2.711331 4.185355 3.329690 3.948050 4.066702
k 2.916497 0.11905604 3 0.2570649 2.361142 3.471852 2.785514 3.018140 2.865676 2.945837 2.981988$comparison
NULL$groupsval groups
f 3.614912 a
b 3.542761 ab
a 3.062863 abc
k 2.916497 abc
c 2.625848 abc
d 2.234612 bc
e 2.139092 cattr(,"class")
[1] "group"
#下面这个是单独查看groups的内容
#下面这个是单独查看groups的内容
print(data$groups)
> print(data$groups)val groups
f 3.614912 a
b 3.542761 ab
a 3.062863 abc
k 2.916497 abc
c 2.625848 abc
d 2.234612 bc
e 2.139092 c
接下来对上述结果进行详细解释:
groups这一列的结果可以理解为找同类,其中val这列是按照均值从大到小排列,先把最大的标记为a,然后,找f的同类,凡是同类都标为a,直到找到第一个异类,然后标记为b,同时停止往下再找f的同类了,然后,开始找标记为b的同类,也就是d: 2.234612同类,先往上找同类,找到的都标为b,直到找完为止,然后再往下找同类,直到找到第一个异类,然后标记为c,然后重复这种工作。最后,这个同类就是两者间是不否存在差异显著性,异类就是存在差异显著性。
最后,画图
plot(data)

画箱线图,并标记字母
p3=ggplot(df,aes(x=trt,y=val))+ geom_boxplot()+ theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),text=element_text(size=13.5),legend.position="None",legend.title= element_blank(),)+labs(y='val',x='trt')+annotate("text", label = "abc",x = 1, y = 3.2, size = 5)+annotate("text", label = "ab",x = 2, y = 4.35, size = 5)+annotate("text", label = "abc",x = 3, y = 3.03, size = 5)+annotate("text", label = "bc",x = 4, y = 2.35, size = 5)+annotate("text", label = "c",x = 5, y = 2.53, size = 5)+annotate("text", label = "a",x = 6, y = 4.25, size = 5)+annotate("text", label = "abc",x = 7, y = 3.05, size = 5)
p3

相关文章:
R语言单因素方差分析+差异显著字母法标注+逐行详细解释
R语言单因素方差分析 代码如下 df <- read.csv("data.csv",header TRUE,row.names 1) library(reshape2) df <- melt(df,idc()) names(df) <- c(trt, val) df aov1 <- aov(val~trt,datadf) summary(aov1)library(agricolae) data <- LSD.test(aov…...
linux 消息队列apache-activemq服务的安装
1.下载 官网下载地址:https://activemq.apache.org/ 操作如下: 2. 解压 执行:tar -zxvf apache-activemq-5.18.3-bin.tar.gz -C /user/ 3. 进入目录 执行:cd /user/apache-activemq-5.18.3 4.修改配置文件 执行࿱…...
前端数据加密相关问题
什么是数据加密? 数据加密是一种安全性技术,通过使用算法将明文转换为密文,以保护数据的保密性和完整性。数据加密通常用于保护机密信息,例如个人身份、财务信息、企业机密等。在数据传输过程中,数据可以被拦截或窃听…...
Vue3中reactive和ref对比
Vue3中reactive和ref对比 数据角度对比原理角度对比使用角度对比 数据角度对比 ref用来定义: 基本类型reactive用来定义: 对象(或数组)类型数据备注:ref也可以定义对象或数组类型数据,它内部会调用reactive转为代理对象. 原理角度对比 ref通过Object.defineProperty()中的ge…...
【尘缘送书第五期】Java程序员:学习与使用多线程
目录 1 多线程对于Java的意义2 为什么Java工程师必须掌握多线程3 Java多线程使用方式4 如何学好Java多线程5 参与方式 摘要:互联网的每一个角落,无论是大型电商平台的秒杀活动,社交平台的实时消息推送,还是在线视频平台的流量洪峰…...
Linux C语言 34-库封装操作
Linux C语言 34-库封装操作 本节关键字:C语言 封装库 动态库 相关C库函数: 什么是库? 库是现成的,可以复用的代码。从本质上看,库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。在C语言的编…...
JavaWeb-Tomcat
1. Web服务器 web服务器由硬件和软件组成: 硬件:计算机系统软件:计算机上安装的服务器软件,安装后可以为web应用提供网络服务。 常见的JavaWeb服务器: Tomcat(Apache):应用最广泛的…...
k8s之Pod常用命令详解、镜像拉取策略(imagePullPolicy)
常用命令 kubectl api-resources #查询可操作的资源对象列表kubectl get pod #查看默认命名空间下所有pod kubectl describe pod podname #获取默认命名空间下POD详情# 如果要查看制定命名空间则使用 -n nsname kubectl get pod -n ns kubectl describe pod podname -n ns# 以Y…...
Spark低版本适配Celeborn
Spark-3.5版本以下使用Celeborn时,无法使用动态资源,对于低版本的Spark,Celeborn提供了patch。各版本patch如下 https://github.com/apache/incubator-celeborn/tree/main/assets/spark-patch 下载patch,这里下载spark-3版本&am…...
idea报错:Error:java: 不允许在使用 -release 时从系统模块 java.xml 导出程序包?
File->Settings, 把红框编译选中选项全部删除掉...
Vector Quantized Diffusion Model for Text-to-Image Synthesis
Vector Quantized Diffusion Model for Text-to-Image Synthesis Shuyang Gu, University of Science and Technology of China, Microsoft, CVPR2022, Cited: 340, Code, Paper 1. 前言 我们提出了用于文本到图像生成的矢量量化扩散(Vector Quantized Diffusion Model&…...
solidity实现ERC1155多代币标准
文章目录 1、NFT - 维基百科2、IERC1155MetadataURI3、IERC1155Receiver4、IERC11555、ERC11556、NFT11557、开源地址 1、NFT - 维基百科 ERC-1155 标准于2018年6月由Witek Radomski、Andrew Cooke、Philippe Castonguay、James Therien、Eric Binet及Ronan Sandford提出。此标…...
10、外观模式(Facade Pattern,不常用)
外观模式(Facade Pattern)也叫作门面模式,通过一个门面(Facade)向客户端提供一个访问系统的统一接口,客户端无须关心和知晓系统内部各子模块(系统)之间的复杂关系,其主要…...
<软考>软件设计师-3程序设计语言基础(总结)
(一) 程序设计语言概述 1 程序设计语言的基本概念 1-1 程序设计语言的目的 程序设计语言是为了书写计算机程序而人为设计的符号语言,用于对计算过程进行描述、组织和推导。 1-2 程序语言分类 低级语言 : 机器语言(计算机硬件只能识别0和1的指令序列)&…...
C/C++---------------LeetCode第278. 第一个错误的版本
第一个错误的版本 题目及要求二分查找 题目及要求 你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。 假设你…...
C语言三种循环输出9*9乘法表
解题思路: 1、外层循环控制1~9循环 2、内层控制循环的次数 比如: 1 * 1 1 循环一次 1 * 1 1 1 * 2 循环两次 依此类推 int i, j;printf("for 打印9*9乘法表\r\n");for(i 1; i <10; i) {for(j 1; j < i;j) {printf("%d * %d %d…...
IntelliJ IDEA 之初体验
文章目录 第一步:下载与安装 IntelliJ IDEA1)官网下载2)选择那种安装包3)开始下载4)解压 第二步:启动 IntelliJ IDEA第三步:创建第一个 Java 项目第四步:运行第一个 Java 程序1&…...
java中synchronized和Lock的区别是什么?
synchronized 和 Lock 都是 Java 中用于实现线程同步的机制,但它们在使用方式和功能上存在一些区别。 使用方式 synchronized: 是 Java 语言关键字,可用于方法或代码块。通过 synchronized 关键字实现的同步是隐式的,无需手动释…...
ESP32-Web-Server编程-通过 Base64 编码在网页中插入图片
ESP32-Web-Server编程-通过 Base64 编码在网页中插入图片 概述 不同于上节 ESP32-Web-Server编程-在网页中通过 src 直接插入图片,本节引入 Base64 编码来显示图片。 Base64 是一种用64个字符来编码表示任意二进制数据的方法。任何符号都可以转换成 Base64 字符集…...
聊一聊大模型 | 京东云技术团队
事情还得从ChatGPT说起。 2022年12月OpenAI发布了自然语言生成模型ChatGPT,一个可以基于用户输入文本自动生成回答的人工智能体。它有着赶超人类的自然对话程度以及逆天的学识。一时间引爆了整个人工智能界,各大巨头也纷纷跟进发布了自家的大模型&#…...
Codesys ST语言PID调参避坑指南:从仿真到实战,手把手教你搞定温控/电机项目
Codesys ST语言PID调参避坑指南:从仿真到实战的工程化解决方案 在工业自动化领域,PID控制算法占据着核心地位。无论是恒温控制、电机调速还是压力调节,一个精心调校的PID控制器往往能决定整个系统的性能表现。然而,许多工程师在掌…...
Blitz.js全栈开发框架:零API理念与Next.js深度集成实战
1. 项目概述:一个颠覆性的全栈开发框架如果你和我一样,在过去的几年里,一直在React生态圈里打转,从Create React App到Next.js,再到尝试自己搭建一套包含身份验证、数据层、API路由的完整应用,那你一定对那…...
Arduino与手机蓝牙通信:nRF8001 BLE模块硬件连接与软件配置全解析
1. 项目概述与核心价值如果你手头有一个Arduino项目,想让它和你的手机“说说话”,比如把传感器数据无线传到手机App上显示,或者用手机App远程控制几个LED灯,那么nRF8001这个蓝牙低功耗(BLE)模块绝对是你绕不…...
从二维到三维:DIY LED视频立方体构建全攻略
1. 项目概述:从平面到立体的视觉革命几年前,当我第一次成功点亮一整面由32x32 RGB LED面板组成的视频墙时,那种由1024个像素点共同编织出的动态画面所带来的震撼,至今记忆犹新。但作为一个热衷于将技术推向边界的创作者࿰…...
大语言模型可靠性监测与压缩的谱方法研究
1. 大语言模型可靠性监测与压缩的谱方法研究概述在深度学习领域,大语言模型(LLM)和视觉语言模型(VLM)的可靠性问题与计算效率挑战日益凸显。模型幻觉(生成与输入无关或错误的内容)和分布偏移(面对训练数据分布外的输入时性能下降)会严重损害用户信任,而庞…...
从零部署开源语音助手:OpenClaw项目实战与二次开发指南
1. 项目概述:从开源代码到可用的语音助手看到leilei926524-tech/openclaw-voice-assistant这个项目标题,我的第一反应是:又一个基于开源代码的语音助手项目。在GitHub上,类似的项目多如牛毛,但真正能让一个普通开发者&…...
AI编程助手用量追踪器:设计原理与本地化部署实践
1. 项目概述:一个专为编码代理设计的用量追踪器最近在折腾AI编程助手,发现一个挺实际的问题:当你把像Cursor、Claude Code、GitHub Copilot这类“编码代理”引入团队或者个人深度工作流后,怎么知道它们到底“吃”了多少资源&#…...
容器镜像深度解析与生产级部署实战指南
1. 项目概述:从容器镜像名到高效部署实践的深度解析最近在梳理内部容器镜像仓库时,一个名为containers/ramalama的镜像引起了我的注意。这个名字乍一看有些无厘头,甚至带点戏谑,但在容器化部署的实践中,这类看似随意的…...
Cursor Free VIP终极指南:如何一键突破AI编程助手使用限制
Cursor Free VIP终极指南:如何一键突破AI编程助手使用限制 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your…...
别再满世界找Kettle了!手把手教你定位最新官方下载源(附版本选择建议)
开源工具下载困境突围指南:以Kettle为例构建高效溯源方法论 在开源工具的使用过程中,最令人头疼的莫过于某天突然发现熟悉的下载链接失效,官网改版后找不到下载入口,或是搜索引擎返回的结果全是过时的教程。这种情况不仅发生在Ke…...
