检查平滑样条曲线与 x 轴相交的次数

Check how many times smooth spline intersects with x-axis

我想检查我的平滑样条曲线与 x 轴相交了多少次。有没有一种优雅的方法可以做到这一点?

示例:(在本例中为 1 个路口)

]1)

检查 y 值从正变为负的次数

set.seed(1571933401)
x = 1:100
y = rnorm(100)
sp = smooth.spline(x, y)

with(sp, sum((sign(c(0, y)) * sign(c(y, 0))) == -1))
#6

graphics.off()
plot(sp, type = "l")
abline(h = 0, lty = 2)