代码之家  ›  专栏  ›  技术社区  ›  cs0815

从时间序列预测中提取值

r
  •  1
  • cs0815  · 技术社区  · 7 年前

    我有个东西 forecast 是的。当我执行时:

    class(forecast)
    

    我得到:

    [1] "mts"    "ts"     "matrix"
    

    这是否意味着这是一个包含3个对象的列表,最后一个对象是一个矩阵?

    当我这样做时:

    str(forecast)
    

    我得到:

     Time-Series [1:5, 1:3] from 8153 to 8157: 52 52 52 51 51 ...
     - attr(*, "dimnames")=List of 2
      ..$ : NULL
      ..$ : chr [1:3] "fit" "upr" "lwr"
    

    当我这样做时:

    head(forecast)
    

    我得到:

              fit      upr      lwr
    [1,] 51.77675 57.21211 46.34138
    [2,] 51.67965 57.22266 46.13664
    [3,] 51.58255 57.36042 45.80468
    [4,] 51.48545 57.65884 45.31206
    [5,] 51.38835 58.13347 44.6432
    

    如何获取此伪代码指示的第一行的单独值请:

              fit      upr      lwr
    [1,] 51.77675 57.21211 46.34138
    
    fit <- ?
    upr <- ?
    lwr <- ?
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Zheyuan Li    7 年前

    如果一个对象有多个类,则可以将其作为任何一个类进行处理(尽管泛型函数通常选择第一个类进行方法分派,请参见 How to extract coefficients' standard error from an "aov" model 例如)。

    多变量时间序列的mts类是矩阵类和ts类的混合。你可以作为一个普通的矩阵来访问它。

    forecast[1, , drop = FALSE]  ## row 1
    
    fit <- forecast[1, 1]
    upr <- forecast[1, 2]
    lwr <- forecast[1, 3]