【问题标题】:Extracting xts attributes from an xts object从 xts 对象中提取 xts 属性
【发布时间】:2020-09-05 19:29:21
【问题描述】:

假设xts 对象obj 如下例所示:

library(quantmod)
getSymbols.FRED('USAPFCEQDSMEI', env = globalenv())
obj <- base::get('USAPFCEQDSMEI')

通过检查它的结构,str(obj),返回以下内容:

An ‘xts’ object on 1960-01-01/2020-01-01 containing:
  Data: num [1:241, 1] 8.16e+10 8.31e+10 8.30e+10 8.35e+10 8.36e+10 ...
 - attr(*, "dimnames")=List of 2
  ..$ : NULL
  ..$ : chr "USAPFCEQDSMEI"
  Indexed by objects of class: [Date] TZ: UTC
  xts Attributes:  
List of 2
 $ src    : chr "FRED"
 $ updated: POSIXct[1:1], format: "2020-05-19 19:23:03"

我可以看到数据对象有一个包含 2 个xts 属性的列表:srcupdated,但找不到提取这些属性的方法。经典的unlistobj$src 似乎都不起作用。

在这种情况下如何正确提取srcupdated 字段?

【问题讨论】:

    标签: r xts


    【解决方案1】:

    您可以使用函数xtsAttributes 来访问这些属性。

    xtsAttributes(obj)
    $src
    [1] "FRED"
    
    $updated
    [1] "2020-05-19 18:29:26 CEST"
    

    或单独:

    xtsAttributes(obj)$src
    [1] "FRED"
    
    xtsAttributes(obj)$updated
    [1] "2020-05-19 18:29:26 CEST"
    

    【讨论】:

      【解决方案2】:

      这是@phiver 显示的特殊xtsAttributes 函数的基本R 替代方案:

      attributes(obj)$src
      [1] "FRED"
      
      attributes(obj)$updated
      [1] "2020-05-19 12:37:31 EDT"
      

      help(xtsAttributes)中所述:

      由于 xts 对象是具有特殊属性的 S3 对象,因此需要一种方法来正确分配和查看用户添加的属性。

      因此,请勿尝试:

      ###Don't do this###
      #attributes(obj)$src <- "AAPL"
      

      【讨论】:

        猜你喜欢
        • 2013-05-27
        • 1970-01-01
        • 2015-03-04
        • 1970-01-01
        • 2013-07-24
        • 2016-01-16
        • 2021-07-13
        • 2017-05-04
        • 2014-03-08
        相关资源
        最近更新 更多