首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从xts对象中提取xts属性

从xts对象中提取xts属性
EN

Stack Overflow用户
提问于 2020-05-19 16:27:19
回答 2查看 102关注 0票数 1

假设有一个xts对象obj,如下例所示:

代码语言:javascript
复制
library(quantmod)
getSymbols.FRED('USAPFCEQDSMEI', env = globalenv())
obj <- base::get('USAPFCEQDSMEI')

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

代码语言:javascript
复制
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"

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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-19 16:34:16

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

代码语言:javascript
复制
xtsAttributes(obj)
$src
[1] "FRED"

$updated
[1] "2020-05-19 18:29:26 CEST"

或分开:

代码语言:javascript
复制
xtsAttributes(obj)$src
[1] "FRED"

xtsAttributes(obj)$updated
[1] "2020-05-19 18:29:26 CEST"
票数 2
EN

Stack Overflow用户

发布于 2020-05-19 16:40:09

下面是@phiver展示的特殊xtsAttributes函数的基本R选项:

代码语言:javascript
复制
attributes(obj)$src
[1] "FRED"

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

正如help(xtsAttributes)中所指出的

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

因此,不要尝试这样做:

代码语言:javascript
复制
###Don't do this###
#attributes(obj)$src <- "AAPL"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61896030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档