2

如何找到循环的 x 截距和 y 截距(全部四个)R

# this will generate an example dataframe mydf
x <- sin(seq(0,2*pi,0.2) + rnorm(1))
y <- cos(seq(0,2*pi,0.2) + rnorm(1))

mydf <- data.frame(x,y)
plot(mydf)
abline(h=0)
abline(v=0)

循环印象

目前,我尝试使用两个类似的功能,它们分为北/南/东/西,并寻找离轴最近的点。这是低效且不精确的,因为该点可能很远。

getYintercept <- function(mdf){
  R1 <- mdf$y[which.min(subset(mdf, y>0)$y)] # north
  R2 <- mdf$y[which.min(subset(mdf, y<0)$y)] # south
  return(rbind(R1,R2))
}

因此,我想在这一点上插入 ( predict, )。approx如何最优雅地解决这个问题?

4

1 回答 1

2

这是一个approxfun解决方案:

intercepts <- function(x,y) {
  x.s <- approxfun(x[y<=0], y[y<=0])(0)
  x.n <- approxfun(x[y>=0], y[y>=0])(0)
  y.w <- approxfun(y[x<=0], x[x<=0])(0)
  y.e <- approxfun(y[x>=0], x[x>=0])(0)

  list(x.s, x.n, y.w, y.e)
}

这里,x.sx南 y 轴截距的值,依此类推。

于 2012-11-25T21:38:22.877 回答