title: interpolate a series over another series in R
body: <p>Suppose if I have a random time series that I want to interpolate over another time series. How would I do this in R?</p>
  
  <pre><code># generate time interval series from exponential distribution
  s = sort(rexp(10))
  # scale between 0 and 1
  scale01 = function(x){(x-min(x))/(max(x)-min(x))}
  s = scale01(s)
  &gt; s
   [1] 0.00000000 0.02804113 0.05715588 0.10630185 0.15778932 0.20391987 0.26066608 0.27265697 0.39100373
  [10] 1.00000000
  
  # generate random normal series
  x = rnorm(20) 
  &gt; x
   [1] -0.82530658  0.92289557  0.39827984 -0.62416117 -1.69055539 -0.28164232 -1.32717654 -1.36992509
   [9] -1.54352202 -1.09826247 -0.68260576  1.07307043  2.35298180 -0.41472811  0.38919315 -0.27325343
  [17] -1.52592682  0.05400849 -0.43498544  0.73841106
  
  # interpolate 'x' over 's' ?
  &gt; approx(x,xout=s)
  $x
   [1] 0.00000000 0.02804113 0.05715588 0.10630185 0.15778932 0.20391987 0.26066608 0.27265697 0.39100373
  [10] 1.00000000
  
  $y
   [1]         NA         NA         NA         NA         NA         NA         NA         NA         NA
  [10] -0.8253066
  &gt; 
  </code></pre>
  
  <p>I want to interpolate the series 'x' over the series 's'. Lets assume time interval series for the 'x' series has 20 elements distributed uniformly over the interval [0,1]. Now I want to interpolate those 10 elements from 'x' that occur at time intervals described by 's'.  </p>
  
  <p>EDIT:
  I think this does the job.</p>
  
  <pre><code>&gt; approx(seq(0,1,length.out=20), x, xout=s)
  $x
   [1] 0.00000000 0.02804113 0.05715588 0.10630185 0.15778932 0.20391987 0.26066608 0.27265697 0.39100373
  [10] 1.00000000
  
  $y
   [1] -0.8253066  0.1061033  0.8777987  0.3781018 -0.6221134 -1.5566990 -0.3483466 -0.4703429 -1.4444105
  [10]  0.7384111
  </code></pre>
  
  <p>Thanks for your help guys. I think I now understand how to use interpolation functions in R now. I should really use a time series data structure here.</p>