使用R语言包eyelinkReader读取eyelink edf数据
内容主要参考网址:https://alexander-pastukhov.github.io/eyelinkReader/
R的版本要求:4.1.0以上
R语言包eyelinkReader:
用于导入SR Research EyeLink 眼动仪采集的数据格式EDF导入到R语言中,它包括导入事件或记录的采样点以及提取单个事件(例如扫视、注视、眨眼和记录的变量)的选项。
安装 SR Research EyeLink SDK开发工具
大多数第三方软件或程序均依赖SR Research EyeLink SDK开发工具包。
此R包依赖EDF-API库,它是EyeLink 开发工具包的一部分。因此,没有它,read_edf()
函数将无法工作。EyeLink 开发工具包可从sr-support.com网站下载。
安装R包
从 CRAN 安装
install.packages("eyelinkReader")
从 github 安装
library("devtools")
install_github("alexander-pastukhov/eyelinkReader", dependencies=TRUE)
用法
主要功能是read_edf()
导入 EDF 文件。默认情况下,它将导入所有事件并尝试提取标准事件:眼跳、眨眼、注视、记录的变量等。
通常在导入之前请检查所处的工作路径,可通过getwd()获取,setwd设置
getwd() #当前的工作目录
setwd("/Users/chenrui/Desktop/eyelinktest") #设置工作目录
library(eyelinkReader)#导入R包
gaze <- read_edf('br.edf')#读取br.edf数据
事件和单个事件类型以表格形式存储在eyelinkRecording
对象内,并带有trial
标识单个试验的列。试验 0 对应于DISPLAY_COORDS
在第一次试验之前发送到眼动仪的事件(例如,消息等)。
View(gaze$saccades)
此处展示与Data Viewer读取的数据对比,数据准确。
用于为单个试次绘制扫视和注视的展示
plot(gaze, trial = 1, show_fixations = TRUE, show_saccades = TRUE)
或跨试次
plot(gaze, trial = NULL, show_fixations = TRUE, show_saccades = TRUE)
该包还可以解析非标准事件的函数:记录的感兴趣区域 ( extract_AOIs
) 和对事件进行计时的触发事件 ( extract_triggers
)。这些需要单独调用。
gaze <- extract_AOIs(gaze)
gaze <- extract_triggers(gaze)
要导入样本点,可使用import_samples = TRUE
并(可选)指定需要导入哪些样本属性,例如sample_attributes = c('time', 'gx', 'gy')
, sample_attributes
如果未指定,则导入所有属性。
# 导入所有samples
gaze <- read_edf('br.edf', import_samples = TRUE)
#查看samples
View(gaze$samples)
# import samples with selected attributes
gaze <- read_edf('br.edf',
import_samples = TRUE,
sample_attributes = c('time', 'gx', 'gy'))
函数adjust_message_time()
还可以更改偏移量的message时间戳。例如,在105600发送的message“-50 TARGET_ONSET”即表示偏移量后移了50ms,如需更改message位“TARGET_ ONSET“,其可更改时间戳为105550。
gaze <- adjust_message_time(gaze)
更多函数可参考其help
谢谢大家观看,如有帮助,来个喜欢或者关注吧!
本文作者:陈锐
博客地址 : Chen Rui Blog
知乎地址 : 知乎专栏
书店地址 : 书店主页
知识星球 : 星球主页
版权声明:本文由 陈锐CR 在 2022年10月04日发表。本博客文章作者为陈锐CR时均采用属于个人原创撰写,未经许可,禁止在任何媒介以任何形式复制、发行本文章,如需转载,请查看About联系方式,非商业转载请注明出处,不得用于商业目的。
文章题目及链接:《R语言包eyelinkReader分析EyeLink数据》