簡體   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