Tool helping psychologists and other behavioural scientists to analyze mouse movement (and other 2-D trajectory) data. Bundles together several functions computing spatial measures (maximum absolute deviation, area under the curve, sample entropy) or providing a shorthand for often-used procedures.
You can install mousetRajectory from CRAN with
install.packages("mousetRajectory")
Alternatively, you can keep up to date and install the latest development version of mousetRajectory from github.com/mc-schaaf/mousetRajectory with:
if(!require("devtools")){install.packages("devtools")}
# devtools::install_github("mc-schaaf/mousetRajectory")
install.packages("mousetRajectory", repos = c('https://mc-schaaf.r-universe.dev', 'https://cloud.r-project.org'))
Currently, the following functions are featured:
is_monotonic() checks whether your timestamps make sense and warns
you if they don’t.is_monotonic_along_ideal() checks whether your trajectories make
sense and warns you if they don’t.time_circle_left() tells you the time at which the starting area
was left.time_circle_entered() tells you the time at which the end area was
entered.point_crosses() tells you how often a certain value on the x or y
axis is crossed.direction_changes() tells you how often the direction along the x
or y axis changes.interp1() directs you to the interpolation function from the
awesome signal package. Thus, you do not have to call
library("signal"). Such time-saving, much wow. Also, not having to
attach the signal package avoids ambiguity between
signal::filter() and dplyr::filter() in your search path.interp2() is a convenience wrapper to interp1() that rescales
the time for you.starting_angle() computes (not only starting) angles.auc() computes the (signed) Area Under the Curve (AUC).max_ad() computes the (signed) Maximum Absolute Deviation (MAD).curvature() computes the curvature.index_max_velocity() computes the time to peak velocity, assuming
equidistant times between data points.index_max_acceleration() computes the time to peak acceleration,
assuming equidistant times between data points.sampen() computes the sample entropy.You can find an example application as well as the full documentation at mc-schaaf.github.io/mousetRajectory/. Do you prefer the good, old paper format? Check out Pfister et al. (2024)!
Please report bugs to github.com/mc-schaaf/mousetRajectory/issues.