问题描述
我有一个数据集,如下例所示,它有多个峰值。我想要峰值之间的最小值的 x 值。如果我需要定义多少个最小值,那不是问题(即我期望我的数据中有三个峰值,所以我可以告诉代码获得两个最小值。)
我使用 density()
来拟合数据,但我一直在获取多个最小值:
示例数据:
nn <- 1e4
set.seed(1)
betas<-rbeta(nn,3,2)
sims <- c(betas[1:(nn/2)]*2+1,betas[(nn/2+1):nn]*2+3,betas[(nn/2+2):nn]*3+4)
hist(sims)
我应该有一个介于 x
3 和 3.5 之间,以及 x
5 和 5.5 之间的最小值。我可以将结束算作最小值,但不是我的问题的优先级。
感谢任何帮助。
解决方法
与density()
拟合后
我将 mSTEM
包用于有效的 which.peaks()
function。