当前位置: 首页 > news >正文

R学习笔记-单因素重复测量方差分析

R语言之重复测量方差分析——ezANOVA的使用与解析 - 知乎

单因素重复测量方差分析(One-Way Repeated Measures ANOVA)——R软件实现 - 梦特医数通

### 清空environment
rm(list = ls())
### 加载包
if (!require("tidyverse")) install.packages("tidyverse")
library(tidyverse)#用于数据清理、操作、可视化和分析
if (!require("conflicted")) install.packages("conflicted")
library(conflicted)#让 R 遇到冲突时抛出错误,并让您明确选择要调用的函数
library(readxl)
if (!require("ez")) install.packages("ez")#用于方差分析
library(ez)

### 读取数据
file_path <- "D:/LLYdata/EEG_EMG_expdata/behavior/result/MATLAB/analysis_data.xlsx"
data <- read_excel(file_path, range = cell_rows(1:25))#读取excel的第1到25行的所有列
### 设置数据
# 选择需要的四列并转换为长格式
data_long <- data %>%rstatix::select(goRT_uni_gocorrect, goRT_i_clgocorrect, goRT_i_crgocorrect, goRT_onlygocorrect) %>%pivot_longer(cols = everything(), names_to = "condition", values_to = "RT") %>%mutate(subject = rep(1:(nrow(data)), each = 4))  # 为每个被试添加一个唯一的标识符

# 计算描述性统计
means <- c(mean(data$goRT_uni_gocorrect), mean(data$goRT_i_clgocorrect), mean(data$goRT_i_crgocorrect), mean(data$goRT_onlygocorrect))
sds <- c(sd(data$goRT_uni_gocorrect), sd(data$goRT_i_clgocorrect), sd(data$goRT_i_crgocorrect), sd(data$goRT_onlygocorrect))
ns <- rep(nrow(data), 4)
# 生成结果数据框
result <- data.frame(Condition = c("goRT_uni_gocorrect", "goRT_i_clgocorrect", "goRT_i_crgocorrect", "goRT_onlygocorrect"),Mean = means,SD = sds,N = ns
)# 使用 ezANOVA 进行单因素重复测量方差分析
anova_results <- ezANOVA(data = data_long,dv = RT,       # 因变量wid = subject,           # 受试者within = condition,      # 重复测量因素detailed = TRUE
)
# 成对比较
AOV<-aov(RT ~ condition,data_long) #检验不同时间之间的差异

# 打开文件以写入
sink(output_file)
# 添加自定义文本
cat("###Condition (uni/i_cl/i_cr/onlygo) 的重复测量方差分析###\n\n")
# 描述性结果
cat("Condition\tMean\tSD\tN\n")
for (i in 1:nrow(result)) {cat(paste(result$Condition[i], "\t", round(result$Mean[i], 2), "\t", round(result$SD[i], 2), "\t", result$N[i], "\n"))
}
# 方差分析结果
print(anova_results)
# 事后两两比较结果
TukeyHSD(AOV,p.adjust.methods="bonferroni") 
# 关闭文件
sink()

# 保留的变量
keep_vars <- c("data", "file_path", "output_file")
# 获取当前环境中的所有变量
all_vars <- ls()
# 找出需要删除的变量
vars_to_remove <- setdiff(all_vars, keep_vars)
# 删除不需要的变量
rm(list = vars_to_remove)

rm(list = ls())#清空environment
### 加载包
if (!require("tidyverse")) install.packages("tidyverse")
library(tidyverse)#用于数据清理、操作、可视化和分析
if (!require("conflicted")) install.packages("conflicted")
library(conflicted)#让 R 遇到冲突时抛出错误,并让您明确选择要调用的函数
library(readxl)
library(ez)### 读取数据
file_path <- "D:/LLYdata/EEG_EMG_expdata/behavior/result/MATLAB/analysis_data.xlsx"
data <- read_excel(file_path, range = cell_rows(1:25))#读取excel的第1到25行的所有列
# 设置结果输出文件路径
output_file <- "D:/LLYdata/EEG_EMG_expdata/behavior/result/R/results.txt"################################################################
###go RT: Condition (uni/i_cl/i_cr/onlygo) 的重复测量方差分析###
################################################################
# 计算描述性统计
means <- c(mean(data$goRT_uni_gocorrect), mean(data$goRT_i_clgocorrect), mean(data$goRT_i_crgocorrect), mean(data$goRT_onlygocorrect))
sds <- c(sd(data$goRT_uni_gocorrect), sd(data$goRT_i_clgocorrect), sd(data$goRT_i_crgocorrect), sd(data$goRT_onlygocorrect))
ns <- rep(nrow(data), 4)
# 生成结果数据框
result <- data.frame(Condition = c("goRT_uni_gocorrect", "goRT_i_clgocorrect", "goRT_i_crgocorrect", "goRT_onlygocorrect"),Mean = means,SD = sds,N = ns
)# 选择需要的四列并转换为长格式
data_long <- data %>%rstatix::select(goRT_uni_gocorrect, goRT_i_clgocorrect, goRT_i_crgocorrect, goRT_onlygocorrect) %>%pivot_longer(cols = everything(), names_to = "condition", values_to = "RT") %>%mutate(subject = rep(1:(nrow(data)), each = 4))  # 为每个被试添加一个唯一的标识符# 使用 ezANOVA 进行单因素重复测量方差分析
anova_results <- ezANOVA(data = data_long,dv = RT,       # 因变量wid = subject,           # 受试者within = condition,      # 重复测量因素detailed = TRUE
)
# 成对比较
AOV<-aov(RT ~ condition,data_long) #检验不同时间之间的差异# 打开文件以写入
sink(output_file)
# 添加自定义文本
cat("###Condition (uni/i_cl/i_cr/onlygo) 的重复测量方差分析###\n\n")
# 描述性结果
cat("Condition\tMean\tSD\tN\n")
for (i in 1:nrow(result)) {cat(paste(result$Condition[i], "\t", round(result$Mean[i], 2), "\t", round(result$SD[i], 2), "\t", result$N[i], "\n"))
}
# 方差分析结果
print(anova_results)
# 事后两两比较结果
TukeyHSD(AOV,p.adjust.methods="bonferroni") 
# 关闭文件
sink()

相关文章:

R学习笔记-单因素重复测量方差分析

R语言之重复测量方差分析——ezANOVA的使用与解析 - 知乎 单因素重复测量方差分析(One-Way Repeated Measures ANOVA)——R软件实现 - 梦特医数通 ### 清空environment rm(list ls()) ### 加载包 if (!require("tidyverse")) install.packages("tidyverse&quo…...

HTML练习题:彼岸的花(web)

展示效果: 代码: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>彼岸の花</title><style…...

(蓝桥杯C/C++)——常用库函数

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 一、 二分查找 1.二分查找的前提 2.binary_ search函数 3.lower_bound和upper_bound 二、排序 1.sort概念 2.sort的用法 3.自定义比较函数 三、全排列 1.next p…...

GPT-Sovits-2-微调模型

1. 大致步骤 上一步整理完数据集后&#xff0c;此步输入数据, 微调2个模型VITS和GPT&#xff0c;位置在 <<1-GPT-SoVITS-tts>>下的<<1B-微调训练>> 页面的两个按钮分别执行两个文件: <./GPT_SoVITS/s2_train.py> 这一步微调VITS的预训练模型…...

【数据结构 | PTA】懂蛇语

懂蛇语 在《一年一度喜剧大赛》第二季中有一部作品叫《警察和我之蛇我其谁》&#xff0c;其中“毒蛇帮”内部用了一种加密语言&#xff0c;称为“蛇语”。蛇语的规则是&#xff0c;在说一句话 A 时&#xff0c;首先提取 A 的每个字的首字母&#xff0c;然后把整句话替换为另一…...

Python——自动化发送邮件

在数字化时代&#xff0c;电子邮件是商务沟通和个人联络的重要工具。自动化邮件发送可以节省时间&#xff0c;提高效率。Python&#xff0c;作为一种强大且灵活的编程语言&#xff0c;提供了多种库来支持邮件的自动化发送。本文将详细介绍如何使用Python的smtplib和email库来编…...

MTKLauncher_布局页面分析

文章目录 前言遇到的困难点针对性解决困难 需求相关资料Launcher3 源码 目录简单介绍Launcher3 简介及页面布局分析UI整体架构数据加载布局加载布局加载核心思想device_profiles.xml 加载InvariantDeviceProfileinitGrid(context, gridName)getPredefinedDeviceProfilesinvDist…...

C#实现隐藏和显示任务栏

实现步骤 为了能够控制Windows任务栏&#xff0c;我们需要利用Windows API提供的功能。具体来说&#xff0c;我们会使用到user32.dll中的两个函数&#xff1a;FindWindow和ShowWindow。这两个函数可以帮助我们找到任务栏窗口&#xff0c;并对其执行显示或隐藏的操作 引入命名空…...

基于springboot+vue实现的公司财务管理系统(源码+L文+ppt)4-102

基于springbootvue实现的公司财务管理系统&#xff08;源码L文ppt&#xff09;4-102 摘要 本系统是基于SpringBoot框架开发的公司财务管理系统,该系统包含固定资产管理、资产申领管理、资产采购管理、员工工资管理等功能。公司财务管理系统是一种帮助公司进行有效资金管理、会…...

rnn/lstm

tip&#xff1a;本人比较小白&#xff0c;看到july大佬的文章受益匪浅&#xff0c;现在其文章基础上加上自己的归纳、理解&#xff0c;以及gpt的答疑&#xff0c;如果有侵权会删。 july大佬文章来源&#xff1a;如何从RNN起步&#xff0c;一步一步通俗理解LSTM_rnn lstm-CSDN博…...

袋鼠云产品功能更新报告12期|让数据资产管理更高效

本期&#xff0c;我们更新和优化了数据资产平台相关功能&#xff0c;为您提供更高效的产品能力。以下为第12期袋鼠云产品功能更新报告&#xff0c;请继续阅读。 一、【元数据】重点更新 &#xff5c;01 元数据管理优化&#xff0c;支持配置表生命周期 之前系统中缺少一个可以…...

MATLAB——入门知识

内容源于b站清风数学建模 目录 1.帮助文档 2.注释 3.特殊字符 4.设置MATLAB数值显示格式 4.1.临时更改 4.2.永久改 5.常用函数 6.易错点 1.帮助文档 doc sum help sum edit sum 2.注释 ctrl R/T 3.特殊字符 4.设置MATLAB数值显示格式 4.1.临时更改 format lon…...

C#从零开始学习(用户界面)(unity Lab4)

这是书本中第四个unity Lab 在这次实验中,将学习如何搭建一个开始界面 分数系统 点击球,会增加分数 public void ClickOnBall(){Score;}在OneBallBehaviour类添加下列方法 void OnMouseDown(){GameController controller Camera.main.GetComponent<GameController>();…...

Axure PR 9 多级下拉清除选择器 设计交互

大家好&#xff0c;我是大明同学。 Axure选择器是一种在交互设计中常用的组件&#xff0c;这期内容&#xff0c;我们来探讨Axure中选择器设计与交互技巧。 OK&#xff0c;这期内容正式开始 下拉列表选择输入框元件 创建选择输入框所需的元件 1.在元件库中拖出一个矩形元件。…...

分布式项目pom配置

1. 父项目打包方式为 pom <packaging>pom</packaging> 2. 父项目版本配置 <properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncod…...

2. Flink快速上手

文章目录 1. 环境准备1.1 系统环境1.2 安装配置Java 8和Scala 2.121.3 使用集成开发环境IntelliJ IDEA1.4 安装插件2. 创建项目2.1 创建工程2.1.1 创建Maven项目2.1.2 设置项目基本信息2.1.3 生成项目基本框架2.2 添加项目依赖2.2.1 添加Flink相关依赖2.2.2 添加slf4j-nop依赖2…...

Java-I/O框架06:常见字符编码、字符流抽象类

视频链接&#xff1a;16.16 字符流抽象类_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Tz4y1X7H7?spm_id_from333.788.videopod.episodes&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5&p16 1.常见字符编码 IOS-8859-1收录了除ASCII外&#xff0c;还包括西欧…...

计算机网络-MSTP的基础概念

前面我们大致了解了MSTP的由来&#xff0c;是为了解决STP/RSTP只有一根生成树导致的VLAN流量负载分担与次优路径问题&#xff0c;了解MSTP采用实例映射VLAN的方式实现多实例生成树&#xff0c;MSTP有很多的理论概念需要知道&#xff0c;其实与其它的知识一样理论复杂配置还好的…...

P1037 [NOIP2002 普及组] 产生数

[NOIP2002 普及组] 产生数 题目描述 给出一个整数 n n n 和 k k k 个变换规则。 规则&#xff1a; 一位数可变换成另一个一位数。规则的右部不能为零。 例如&#xff1a; n 234 , k 2 n234,k2 n234,k2。有以下两个规则&#xff1a; 2 ⟶ 5 2\longrightarrow 5 2⟶5。 …...

【分布式知识】分布式对象存储组件-Minio

文章目录 什么是minio核心特点&#xff1a;使用场景&#xff1a;开发者工具&#xff1a;社区和支持&#xff1a; 核心概念什么是对象存储&#xff1f;MinIO 如何确定对对象的访问权限&#xff1f;我可以在存储桶内按文件夹结构组织对象吗&#xff1f;如何备份和恢复 MinIO 上的…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况&#xff0c;可以通过以下几种方式模拟或触发&#xff1a; 1. 增加CPU负载 运行大量计算密集型任务&#xff0c;例如&#xff1a; 使用多线程循环执行复杂计算&#xff08;如数学运算、加密解密等&#xff09;。运行图…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

C# winform教程(二)----checkbox

一、作用 提供一个用户选择或者不选的状态&#xff0c;这是一个可以多选的控件。 二、属性 其实功能大差不差&#xff0c;除了特殊的几个外&#xff0c;与button基本相同&#xff0c;所有说几个独有的 checkbox属性 名称内容含义appearance控件外观可以变成按钮形状checkali…...

解决MybatisPlus使用Druid1.2.11连接池查询PG数据库报Merge sql error的一种办法

目录 前言 一、问题重现 1、环境说明 2、重现步骤 3、错误信息 二、关于LATERAL 1、Lateral作用场景 2、在四至场景中使用 三、问题解决之道 1、源码追踪 2、关闭sql合并 3、改写处理SQL 四、总结 前言 在博客&#xff1a;【写在创作纪念日】基于SpringBoot和PostG…...

解密鸿蒙系统的隐私护城河:从权限动态管控到生物数据加密的全链路防护

摘要 本文以健康管理应用为例&#xff0c;展示鸿蒙系统如何通过细粒度权限控制、动态权限授予、数据隔离和加密存储四大核心机制&#xff0c;实现复杂场景下的用户隐私保护。我们将通过完整的权限请求流程和敏感数据处理代码&#xff0c;演示鸿蒙系统如何平衡功能需求与隐私安…...

后端解决跨域问题的三种方案:注解配置 vs 全局配置 vs 过滤器配置(附完整代码详解)

文章目录 一、引言:跨域问题的本质与解决方案分类解决方案分类二、方案一:`WebMvcConfigurer` 全局配置(推荐)1. 核心代码(你提供的 `CorsConfig` 示例)2. 代码详解3. 优点4. 注意事项三、方案二:`CorsFilter` 过滤器配置(传统方式)1. 核心代码(你提供的 `ResourcesC…...

sql列中数据通过逗号分割的集合,按需求剔除部分值

前置 不会REGEXP 方法的需要在这里学习一下下 记sql字段逗号分隔&#xff0c;通过list查询 功能点 现有一个表格中一列存储的是标签的集合&#xff0c;通过逗号分割 入下&#xff1a; 其中tag_ids是逗号分割的标签&#xff0c;现在需要删除标签组中的一些标签&#xff0c;因…...