Compute time-normalized trajectories using a constant number of equally sized time steps. Time normalization is performed separately for all specified trajectory dimensions (by default, the x- and y-positions) using linear interpolation based on the timestamps. By default, 101 time steps are used (following Spivey et al., 2005).

  use = "trajectories",
  save_as = "tn_trajectories",
  dimensions = c("xpos", "ypos"),
  timestamps = "timestamps",
  nsteps = 101,
  verbose = FALSE



a mousetrap data object created using one of the mt_import functions (see mt_example for details). Alternatively, a trajectory array can be provided directly (in this case use will be ignored).


a character string specifying which trajectory data should be used.


a character string specifying where the resulting trajectory data should be stored.


a character vector specifying the dimensions in the trajectory array that should be time-normalized. If "all", all trajectory dimensions except the timestamps will be time-normalized.


a character string specifying the trajectory dimension containing the timestamps.


an integer specifying the number of equally sized time steps.


logical indicating whether function should report its progress.


A mousetrap data object (see mt_example) with an additional array (by default called tn_trajectories) containing the time-normalized trajectories. In this array, another dimension (called steps) has been added with increasing integer values indexing the time-normalized position. If a trajectory array was provided directly as data, only the time-normalized trajectories will be returned.


Time-normalization is often performed if the number of recorded x- and y-positions varies across trajectories, which typically occurs when trajectories vary in their response time. After time-normalization, all trajectories have the same number of recorded positions (which is specified using nsteps) and the positions at different relative time points can be compared across trajectories.

For example, time normalized trajectories can be compared across conditions that differed in their overall response time, as the timestamps are now relative to the overall trial duration. This is also helpful for creating average trajectories, which are often used in plots.


Spivey, M. J., Grosjean, M., & Knoblich, G. (2005). Continuous attraction toward phonological competitors. Proceedings of the National Academy of Sciences of the United States of America, 102(29), 10393-10398.

See also

approx for information about the function used for linear interpolation.

mt_resample for resampling trajectories using a constant time interval.


Pascal J. Kieslich

Felix Henninger


mt_example <- mt_time_normalize(mt_example,
  save_as="tn_trajectories", nsteps=101)