我的数据如下所示
docker-compse
我想找到:
答案 0 :(得分:1)
i <- which(diff(sign(diff(y)))<0)+1L;
length(i); ## number of local maxima
## [1] 5
i; ## indexes of local maxima
## [1] 12 24 36 48 60
当然,通过反转比较可以对局部最小值做同样的事情:
j <- which(diff(sign(diff(y)))>0)+1L;
length(j); ## number of local minima
## [1] 6
j; ## indexes of local minima
## [1] 7 18 30 41 53 71
您可以轻松地在局部最大值和最小值处绘制点,如下所示:
points(x[i],y[i]);
points(x[j],y[j]);
根据您问题的措辞,我怀疑您确实想要由6个本地最小值分隔的5个分段。因此j
是你的家伙。 (您可以使用length(i)
或length(j)-1L
来获取细分计数。)