繁体   English   中英

在 R 中循环时间序列对象

[英]Loop over time-series object in R

我有一个时间序列对象:

 seq <- seq(as.POSIXct("2015-09-01"),as.POSIXct("2015-09-02"), by = "120 mins")
 ob <- xts(rnorm(length(seq)),seq) # xts object

ob一个重要特性是它会实时更新,即使用rbind将新的观察结果附加到它上面。 因此,我不知道这个对象的确切长度。 现在,我想逐行读取ob并执行我需要的操作。 让我们假设我将读取ob行,然后将此行添加到另一个静态时间序列 ( xts ) 对象。 我应该如何逐行阅读ob 直到现在,我接近它

  i <- 1
  l <- ob[i,]
  while(NROW(l)) # Check I have a row to read
  {   
      print(l) # dummy operation
      i <- i+1
      l <- ob[i,] 
  }

这段代码完成了它的工作,但它会导致错误

Error in `[.xts`(ob, i, ) : subscript out of bounds

我理解错误。 我想知道,有没有更好的方法来逐行读取xts对象?

这会做你想要的吗?

library(xts)

seq <- seq(as.POSIXct("2015-09-01"),as.POSIXct("2015-09-02"), by = "120 mins")
ob <- xts(rnorm(length(seq)),seq) # xts object

i <- 1
l <- ob[i,]
while(NROW(l))
{
    print(l)
    i <- i+1
    l <- try(ob[i,], silent=TRUE)
    if(class(l)[1]=="try-error") break
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM