Title: | Import ASC Files from EyeLink Eye Trackers |
---|---|
Description: | Imports plain-text ASC data files from EyeLink eye trackers into (relatively) tidy data frames for analysis and visualization. |
Authors: | Simon Barthelme <[email protected]> |
Maintainer: | Austin Hurst <[email protected]> |
License: | GPL-3 | file LICENCE |
Version: | 0.2.1 |
Built: | 2024-10-31 18:36:43 UTC |
Source: | https://github.com/a-hurst/eyelinker |
Returns whether numeric values on the left-hand side of the operator fall within any of the
specified intervals on the right-hand side. Intervals can be specified using either two-column
matrices or Intervals
objects from the
intervals
package.
x %In% Intv x %within% Intv
x %In% Intv x %within% Intv
x |
A vector of numeric values |
Intv |
A set of intervals, defined by a two-column matrix of endpoints or an Intervals object |
A vector of logicals, which are true if x[i] belongs to any of the intervals in the set.
Simon Barthelme
start <- c(0, 1, 2) end <- c(.5, 1.3, 3) intv <- cbind(start, end) # The first interval is 0-0.5, second is 1-1.3, etc. c(0, .6, 1.5, 3) %In% intv
start <- c(0, 1, 2) end <- c(.5, 1.3, 3) intv <- cbind(start, end) # The first interval is 0-0.5, second is 1-1.3, etc. c(0, .6, 1.5, 3) %In% intv
Dealing with unprocessed ASC files from EyeLink eye trackers can be a pain. This package aims to make importing and working with these files as fast and easy as possible.
For documentation of the structure of the returned data, see the "format" vignette:
vignette("format", package = "eyelinker")
For worked examples illustrating the package in action, see the "basics" vignette:
vignette("basics", package = "eyelinker")
Imports data from EyeLink ASC files into (relatively) tidy data frames for analysis and visualization. Event data and/or raw sample data from the files can be imported, along with information about the tracker hardware and configuration. All data is divided into numbered blocks using the "START" and "END" messages in the ASC file.
read.asc(fname, samples = TRUE, events = TRUE, parse_all = FALSE) read_asc(fname, samples = TRUE, events = TRUE, parse_all = FALSE)
read.asc(fname, samples = TRUE, events = TRUE, parse_all = FALSE) read_asc(fname, samples = TRUE, events = TRUE, parse_all = FALSE)
fname |
|
samples |
|
events |
|
parse_all |
|
ASC files can contain anywhere between 125 to 2000 rows of samples for every second of recording,
meaning that the resulting files can be very large (1.2 million rows of samples for 20 minutes at
1000Hz). As a result, importing some ASC files can be slow, and the resulting data frames can
take up 100's of MB of memory. To speed up import and greatly reduce memory load, you can choose
to ignore raw samples and only import events by setting the samples parameter to FALSE
.
This function returns a list containing the following possible data frames:
raw
Raw sample data
sacc
Saccade end events
fix
Fixation end events
blinks
Blink end events
msg
Messages sent or received by the tracker
input
Input port (TTL) events
button
Button box / gamepad events
info
Tracker settings/configuration metadata
The names of the columns in these data frames correspond to column names given in the ASC section of the EyeLink 1000 User's Guide.
Note that this function cannot import EDFs directly; they must be converted to plain-text ASC using the edf2asc utility before importing.
A list
of tibble
s containing data from the .asc file.
Simon Barthelme & Austin Hurst
# Example file from SR research that ships with the package fpath <- system.file("extdata/mono500.asc.gz", package = "eyelinker") dat <- read.asc(fpath) plot(dat$raw$time, dat$raw$xp, xlab = "Time (ms)", ylab = "Eye position along x-axis (pix)")
# Example file from SR research that ships with the package fpath <- system.file("extdata/mono500.asc.gz", package = "eyelinker") dat <- read.asc(fpath) plot(dat$raw$time, dat$raw$xp, xlab = "Time (ms)", ylab = "Eye position along x-axis (pix)")
Returns which interval (if any) each number in a vector belongs to, given a set of
user-defined intervals. Intervals can be specified using either two-column matrices or
Intervals
objects from the intervals
package.
whichInterval(x, Intv) which_interval(x, Intv)
whichInterval(x, Intv) which_interval(x, Intv)
x |
A vector of numeric values |
Intv |
A two-column matrix or an object of class Intervals |
For each value in x: if x[i] is in the set of intervals, the index of the corresponding interval(s), NA if no interval contains x[i]
Simon Barthelme
%In%
start <- c(0, 1, 2) end <- c(.5, 1.3, 3) intv <- cbind(start, end) # The first interval is 0-0.5, second is 1-1.3, etc. whichInterval(seq(0, 3, l = 10), intv)
start <- c(0, 1, 2) end <- c(.5, 1.3, 3) intv <- cbind(start, end) # The first interval is 0-0.5, second is 1-1.3, etc. whichInterval(seq(0, 3, l = 10), intv)