gpt4 book ai didi

r - 如何检测时间序列数据中的符号变化(例如,正到负)?

转载 作者:行者123 更新时间:2023-12-02 05:28:20 27 4
gpt4 key购买 nike

我有随时间变化的通量数据,并希望获得通量从负变为正或反之亦然的时间列表。这似乎是一件简单的事情,所以它可能有一个简单的答案,但我一直无法用我的搜索词找到一个。

样本数据:

day=c(1,2,3,5,10,20)
flux=c(-2,-4,1,-2,4,11)

我想得到类似向量 crossover_times= (2.5, 4, 7.5) 的东西来指示发生变化的插值天数,理想情况下,还有指示符号变化方向的信息,例如sign_changes =(正,负,正)。

当然,我可以编写一个循环来遍历数据,但我猜测 R 有一个或多个对此有用的函数。有什么建议?

最佳答案

diff(sign(flux))将在交叉处为非零,并具有交叉符号:

updn <- c(0, diff(sign(flux)))
ix <- which(updn != 0)

(day[ix] + day[ix-1])/2
## [1] 2.5 4.0 7.5

sign(updn)[ix]
## [1] 1 -1 1

更新:添加了交叉标志。改进。

关于r - 如何检测时间序列数据中的符号变化(例如,正到负)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25091581/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com