菊花冰糖水 发表于 2018-3-5 18:07 
像这种
Temp<-mydata$齿轮箱油池温度_平均值
findpeak_valley1 <- function(x){
r <- rle(x)
pks_position <-which(rep(x = diff(sign(diff(c(-Inf, r$values, -Inf)))) == -2, times = r$lengths))
valley_position <-which(rep(x = diff(sign(diff(c(-Inf, r$values, -Inf)))) == 2, times = r$lengths))
pks<-x[pks_position]
valley<-x[valley_position]
n_pks <- length(rle(pks)$value)
n_valley <- length(rle(valley)$value)
return(list(
"pks_position"=pks_position,
"valley_position"=valley_position,
"pks"=pks,
"valley"=valley,
"n_pks"=n_pks,
"n_valley"=n_valley
))
}
result<-findpeak_valley1(Temp)
paste('The pks number is %d',result$n_pks)
paste('The valley number is %d',result$n_valley)
你好,我中间稍微改动了点程序,将波峰波谷中重复的点去掉,然后计算一段油温数据的波峰波谷,最后得出的波峰和波谷的数量是不同,这是为什么呢?理论上讲,一段序列数据,其波峰和波谷的数量不应该是相同或者差1吗?可是我的差很多