gpt4 book ai didi

r - 如何在 R 中重新采样和插入时间序列数据?

转载 作者:行者123 更新时间:2023-12-04 21:47:49 27 4
gpt4 key购买 nike

我有大约每 5 分钟记录一次的测量值:

2012-07-09T05:30:01+02:00   1906.1  1069.2  1093.2  3   1071.0  1905.7  
2012-07-09T05:35:02+02:00 1905.7 1069.2 1093.0 0 1071.5 1905.7
2012-07-09T05:40:02+02:00 1906.1 1068.7 1093.2 0 1069.4 1905.7
2012-07-09T05:45:02+02:00 1905.7 1068.4 1093.0 1 1069.6 1905.7
2012-07-09T05:50:02+02:00 1905.7 1068.2 1093.0 4 1073.3 1905.7

第一列是数据的时间戳。其余列是记录的数据。

我需要重新采样我的数据,以便每 15 分钟就有一行,例如就像是:
2012-07-09T05:15:00 XX XX XX XX XX XX
2012-07-09T05:30:00 XX XX XX XX XX XX
....

(此外,记录的数据中可能存在间隙,我希望将超过一小时的间隙替换为一排 NA 值。)

我可以想到几种手动编程的方法,但是在 R 中是否有内置支持来做这种事情?我查看了用于处理时间序列数据的不同库( zoochron 等),但找不到任何令人满意的东西。

最佳答案

您可以使用 approx或相关 approxfun .如 t是由采样数据的时间点组成的向量,如果 y是带有数据的向量然后 f <- approxfun(t,y)创建函数 f线性插入时间点之间的数据点。

例子:

# irregular time points at which data was sampled
t <- c(5,10,15,25,30,40,50)
# measurements
y <- c(4.3,1.2,5.4,7.6,3.2,1.2,3.7)

f <- approxfun(t,y)

# get interpolated values for time points 5, 20, 35, 50
f(seq(from=5,to=50,by=15))
[1] 4.3 6.5 2.2 3.7

关于r - 如何在 R 中重新采样和插入时间序列数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11388940/

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