<!DOCTYPE html>
<!-- Generated by pkgdown: do not edit by hand --><html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Resample trajectories using a constant time interval. — mt_resample • mousetrap</title><!-- jquery --><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script><!-- Bootstrap --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha256-bZLfwXAP04zRMK2BjiO8iu9pf4FbLqX6zitd+tIvLhE=" crossorigin="anonymous"><script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha256-nuL8/2cJ5NDSSwnKD8VqreErSWHtnEP9E7AySL+1ev4=" crossorigin="anonymous"></script><!-- bootstrap-toc --><link rel="stylesheet" href="../bootstrap-toc.css"><script src="../bootstrap-toc.js"></script><!-- Font Awesome icons --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" integrity="sha256-mmgLkCYLUQbXn0B1SRqzHar6dCnv9oZFPEC1g1cwlkk=" crossorigin="anonymous"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/v4-shims.min.css" integrity="sha256-wZjR52fzng1pJHwx4aV2AO3yyTOXrcDW7jBpJtTwVxw=" crossorigin="anonymous"><!-- clipboard.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script><!-- headroom.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/headroom.min.js" integrity="sha256-AsUX4SJE1+yuDu5+mAVzJbuYNPHj/WroHuZ8Ir/CkE0=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/jQuery.headroom.min.js" integrity="sha256-ZX/yNShbjqsohH1k95liqY9Gd8uOiE1S4vZc+9KQ1K4=" crossorigin="anonymous"></script><!-- pkgdown --><link href="../pkgdown.css" rel="stylesheet"><script src="../pkgdown.js"></script><meta property="og:title" content="Resample trajectories using a constant time interval. — mt_resample"><meta property="og:description" content="Resample trajectory positions using a constant time interval. If no timestamp
that represents an exact multiple of this time interval is found, linear
interpolation is performed using the two adjacent timestamps."><!-- mathjax --><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script><!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]--></head><body data-spy="scroll" data-target="#toc">
    

    <div class="container template-reference-topic">
      <header><div class="navbar navbar-default navbar-fixed-top" role="navigation">
  <div class="container">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <span class="navbar-brand">
        <a class="navbar-link" href="../index.html">mousetrap</a>
        <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="">3.2.3</span>
      </span>
    </div>

    <div id="navbar" class="navbar-collapse collapse">
      <ul class="nav navbar-nav"><li>
  <a href="../reference/mousetrap-package.html">Overview</a>
</li>
<li>
  <a href="../reference/index.html">Reference</a>
</li>
<li>
  <a href="../news/index.html">News</a>
</li>
      </ul><ul class="nav navbar-nav navbar-right"><li>
  <a href="https://github.com/pascalkieslich/mousetrap" class="external-link">
    <span class="fa fa-github fa-lg"></span>
     
  </a>
</li>
      </ul></div><!--/.nav-collapse -->
  </div><!--/.container -->
</div><!--/.navbar -->

      

      </header><div class="row">
  <div class="col-md-9 contents">
    <div class="page-header">
    <h1>Resample trajectories using a constant time interval.</h1>
    <small class="dont-index">Source: <a href="https://github.com/pascalkieslich/mousetrap/blob/HEAD/R/preprocess.R" class="external-link"><code>R/preprocess.R</code></a></small>
    <div class="hidden name"><code>mt_resample.Rd</code></div>
    </div>

    <div class="ref-description">
    <p>Resample trajectory positions using a constant time interval. If no timestamp
that represents an exact multiple of this time interval is found, linear
interpolation is performed using the two adjacent timestamps.</p>
    </div>

    <div id="ref-usage">
    <div class="sourceCode"><pre class="sourceCode r"><code><span><span class="fu">mt_resample</span><span class="op">(</span></span>
<span>  <span class="va">data</span>,</span>
<span>  use <span class="op">=</span> <span class="st">"trajectories"</span>,</span>
<span>  save_as <span class="op">=</span> <span class="st">"rs_trajectories"</span>,</span>
<span>  dimensions <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="st">"xpos"</span>, <span class="st">"ypos"</span><span class="op">)</span>,</span>
<span>  timestamps <span class="op">=</span> <span class="st">"timestamps"</span>,</span>
<span>  step_size <span class="op">=</span> <span class="fl">10</span>,</span>
<span>  exact_last_timestamp <span class="op">=</span> <span class="cn">TRUE</span>,</span>
<span>  constant_interpolation <span class="op">=</span> <span class="cn">NULL</span>,</span>
<span>  verbose <span class="op">=</span> <span class="cn">FALSE</span></span>
<span><span class="op">)</span></span></code></pre></div>
    </div>

    <div id="arguments">
    <h2>Arguments</h2>
    <dl><dt>data</dt>
<dd><p>a mousetrap data object created using one of the mt_import
functions (see <a href="mt_example.html">mt_example</a> for details). Alternatively, a trajectory
array can be provided directly (in this case <code>use</code> will be ignored).</p></dd>


<dt>use</dt>
<dd><p>a character string specifying which trajectory data should be
used.</p></dd>


<dt>save_as</dt>
<dd><p>a character string specifying where the resulting trajectory
data should be stored.</p></dd>


<dt>dimensions</dt>
<dd><p>a character vector specifying the dimensions in the
trajectory array that should be resampled. If <code>"all"</code>, all trajectory
dimensions except the timestamps will be resampled.</p></dd>


<dt>timestamps</dt>
<dd><p>a character string specifying the trajectory dimension
containing the timestamps.</p></dd>


<dt>step_size</dt>
<dd><p>an integer specifying the size of the constant time
interval. The unit corresponds to the unit of the timestamps.</p></dd>


<dt>exact_last_timestamp</dt>
<dd><p>logical indicating if the last timestamp should
always be appended (which is the case by default). If <code>FALSE</code>, the
last timestamp is only appended if it is a multiple of the step_size.</p></dd>


<dt>constant_interpolation</dt>
<dd><p>an optional integer. If specified, constant
instead of linear interpolation will be performed for all adjacent
timestamps whose difference exceeds the number specified for
<code>constant_interpolation</code>. The unit corresponds to the unit of the
timestamps.</p></dd>


<dt>verbose</dt>
<dd><p>logical indicating whether function should report its
progress.</p></dd>

</dl></div>
    <div id="value">
    <h2>Value</h2>
    

<p>A mousetrap data object (see <a href="mt_example.html">mt_example</a>) with an additional
array (by default called <code>rs_trajectories</code>) containing the resampled
trajectories. If a trajectory array was provided directly as <code>data</code>,
only the resampled trajectories will be returned.</p>
    </div>
    <div id="details">
    <h2>Details</h2>
    <p><code>mt_resample</code> can be used if the number of logged positions in a trial
should be reduced. <code>mt_resample</code> achieves this by artificially
decreasing the resolution with which the positions were recorded. For
example, if mouse positions were recorded every 10 ms in an experiment, but
one was only interested in the exact mouse position every 50 ms,
<code>mt_resample</code> with <code>step_size=50</code> could be used. In this case, only
every fifth sample would be kept.</p>
<p>In addition, <code>mt_resample</code> can be used to only retain values for
specific timestamps across trials (e.g., if for each trial the position of
the mouse exactly 250 ms and 500 ms after onset of the trial are of
interest). In case that a trial does not contain samples at the specified
timestamps, linear interpolation is performed using the two adjacent
timestamps.</p>
<p>If a number is specified for <code>constant_interpolation</code>, constant instead
of linear interpolation will be performed for all adjacent timestamps whose
difference exceeds this number. Specifically, a period without mouse movement
will be assumed starting at the respective timestamp until the next timestamp</p><ul><li><p><code>constant_interpolation/2</code>.</p></li>
</ul><p>Note that <code>mt_resample</code> does not average across time intervals. For
this, <a href="mt_average.html">mt_average</a> can be used.</p>
    </div>
    <div id="see-also">
    <h2>See also</h2>
    <div class="dont-index"><p><a href="https://rdrr.io/r/stats/approxfun.html" class="external-link">approx</a> for information about the function used for
linear interpolation.</p>
<p><a href="mt_average.html">mt_average</a> for averaging trajectories across constant time intervals.</p>
<p><a href="mt_time_normalize.html">mt_time_normalize</a> for time-normalizing trajectories.</p></div>
    </div>
    <div id="author">
    <h2>Author</h2>
    <p>Pascal J. Kieslich</p>
<p>Felix Henninger</p>
    </div>

    <div id="ref-examples">
    <h2>Examples</h2>
    <div class="sourceCode"><pre class="sourceCode r"><code><span class="r-in"><span><span class="va">mt_example</span> <span class="op">&lt;-</span> <span class="fu">mt_resample</span><span class="op">(</span><span class="va">mt_example</span>,</span></span>
<span class="r-in"><span>  save_as<span class="op">=</span><span class="st">"rs_trajectories"</span>,</span></span>
<span class="r-in"><span>  step_size<span class="op">=</span><span class="fl">50</span><span class="op">)</span></span></span>
<span class="r-in"><span></span></span>
</code></pre></div>
    </div>
  </div>
  <div class="col-md-3 hidden-xs hidden-sm" id="pkgdown-sidebar">
    <nav id="toc" data-toggle="toc" class="sticky-top"><h2 data-toc-skip>Contents</h2>
    </nav></div>
</div>


      <footer><div class="copyright">
  <p></p><p>Developed by Pascal J. Kieslich, Dirk U. Wulff, Felix Henninger, Jonas M. B. Haslbeck.</p>
</div>

<div class="pkgdown">
  <p></p><p>Site built with <a href="https://pkgdown.r-lib.org/" class="external-link">pkgdown</a> 2.0.7.</p>
</div>

      </footer></div>

  


  

  </body></html>

