Вы можете использовать find_peaks
из пакета ggpmisc
.
library(ggpmisc)
x[ggpmisc:::find_peaks(df$y)]
y[ggpmisc:::find_peaks(df$y)]
Выход:
[1] -1.5 3.0
[1] 1.6373473 0.8818895
Обратите внимание, что функция find_peaks
отмечена как внутренний .Поэтому вам необходимо получить к нему доступ, используя :::
.
. Вы можете дополнительно параметризовать вызов на find_peaks
, используя аргументы span
и strict
.Подробнее см. ??find_peaks
.
Вы также можете напрямую изобразить это, используя пакеты ggplot2
и ggpmisc
:
x <- seq(-5,5,length=10001)
y <- (10*((x-1)^2)^(1/3))/(x^2 + 9)
df <- data.frame(x = x, y = y)
ggplot(data = df, aes(x = x, y = y)) + geom_line() + stat_peaks(col = "red")