2

我有每小时的时间序列,并希望每 15 分钟插入一次次小时值。线性插值就可以了。但是,如果有任何方法可以指定高斯、多项式,那就太好了。

例如,如果我有

a<-c(4.5,7,3.3) 这是前三个小时的数据。在这种情况下,如何获得 15 分钟的次小时数据,总共 9 个值?我一直在使用近似函数并研究 zoo 包,但仍然不知道我该怎么做。非常感谢!

4

2 回答 2

4

这个怎么样:

b<-xts(c(4.5,7,3.3), order.by=as.POSIXct(c('2013-07-26 0:00', 
                                           '2013-07-26 2:00', 
                                           '2013-07-26 3:00')))
approx(b, n=13)   ,

调整n适当的时间间隔?

于 2013-07-26T15:42:21.160 回答
1

xts包中,您可以选择na.approxna.spline

  1. 将您的时间序列强制为一个xts对象
  2. 创建一个间隔为 15 分钟的新索引
  3. 使用这个新索引创建一个与您的对象合并的 NULL xts 对象
  4. na.approx使用线性/常数近似或na.spline多项式近似缺失值。

这里有一个完整的例子:

library(xts)
set.seed(21)
## you create the xts object
x <- xts(rnorm(10),
         seq(from=as.POSIXct(Sys.Date()),
             length.out=10,
             by=as.difftime(1,units='hours')))
## new index to be used 
new.index <- 
  seq(min(index(x)),max(index(x)), by=as.difftime(15,units='mins'))
## linear approx
na.approx(merge(x,xts(NULL,new.index)))
## polynomial approx
na.spline(merge(x,xts(NULL,new.index)))
于 2013-07-26T16:06:05.177 回答