2

ループのx切片とy切片(4つすべて)を見つけるにはどうすればよい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)

ループの印象

現時点では、2つの同様の関数を試してみています。これらの関数は、北/南/東/西に分割され、軸に最も近い点を探します。ポイントが遠くにある可能性があるため、これは非効率的で正確ではありません。

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 に答える