[R] Linear Interpolation question
    Ralf B 
    ralf.bierig at gmail.com
       
    Thu Jul 29 23:16:02 CEST 2010
    
    
  
Hi R experts,
I have the following timeseries data:
#example data structure
a <- c(NA,1,NA,5,NA,NA,NA,10,NA,NA)
c <- c(1:10)
df <- data.frame(timestamp=a, sequence=c)
print(df)
where i would like to linearly interpolate between the points 1,5, and
10 in 'timestamp'. Original timestamps should not be modified. Here
the code I use to run the interpolation (so far):
# linear interpolation
print(c)
results <- approx(df$sequence, df$timestamp, n=NROW(df))
print(results)
df$timestamp <- results$y
# plotting
plot(c, a, main = "Linear Interpolation with approx")
points(results, col = 2, pch = "*")
# new dataframe
print(df)
when looking at the result dataframe however, I can see that the
original timestamps have been shifted as well. however would i would
like to have is a result where the timestamps at position 2,4 and 8
remain unchanged at the values 1,5, and 10. I also would like values
before the first item to be constant. So the dataframe should look
like this:
 timestamp sequence
1   1.000000        1
2  1.000000        2
3   3.000000        3
4   5.000000        4
5   6.250000        5
6   7.500000        6
7   8.750000        7
8   10.00000        8
9   10.000000      9
10 10.000000     10
How do I have the change the syntax of my script to make that work?
Ralf
    
    
More information about the R-help
mailing list