[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