Проверьте, сколько раз гладкий сплайн пересекается с осью X - PullRequest
0 голосов
/ 24 октября 2019

Я хочу проверить, сколько раз мой сглаженный сплайн пересекается с осью X. Есть ли элегантный способ сделать это?

Пример: (в данном случае 1 пересечение)

Text](https://stackoverflow.com/[![image.jpg] 1 )

1 Ответ

1 голос
/ 24 октября 2019

Проверьте, сколько раз 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)

enter image description here

...