set.seed(42)
n <- 600
t <- seq_len(n)
p1 <- 30
p2 <- 240
xy.pure <- (1 + 0.6 * sin(t*2*pi/p2)) * sin(t*2*pi/p1) + 2 * sin(t*2*pi/p2)
xy <- xy.pure + rnorm(n, sd = 0.5)
inter_dt <- round(runif(length(xy), min = 0.5, max = 1.5),1)
dt.pure <- cumsum(inter_dt)
keep <- runif(length(dt.pure)) < 0.5
xy <- xy[keep]
dt <- dt.pure[keep] + rnorm(sum(keep), -0.2, 0.2)
par(mfrow = c(1,2))
plot(xy, dt, type = "o", pch = 19)
plot(xy.pure, dt.pure, type = "o", pch = 19)
par(mfrow = c(1,1))
out <- approx.cor(xy, dt, xy.pure, dt.pure)
out$cor
out$slope
out$intercept
Run the code above in your browser using DataLab