R - 查找数据集中的更改点

时间:2017-09-04 03:05:36

标签: r time-series

enter image description here enter image description here

请请参考图片以获得完整的理解

我有一个包含数值的庞大数据集。我需要找到增加或减少趋势开始和结束的点。

E.g: [100312 100317 100380 100432 100438 100441 100509 100641 100779 100919 100983 100980 100978 100983 100986 100885 100767 100758 100755 100755]

我已经在我的数据中显示了100万行中的5000行。

输出> 100317(增加的起点),100432(增加的终点),100441(增加的起点)100919(增加的终点)。

〜10的变化被认为是噪音。

1 个答案:

答案 0 :(得分:0)

你可以尝试这个代码;增长的起点和增加的终点

df <- c(100312,100317,100380,100432,100438,100441,100509,100641,100779,100919,100983,100980,100978,100989,100999,100885,100767,100758,100755,100755)
indexs <- which(diff(df) >= 10)
flag <- which(diff(indexs) > 1)
end <- c(flag, length(indexs))
start <- c(1, end[-length(end)] + 1)
mapply(function(x, y) c(df[indexs[x]], df[indexs[y]]), start, end)