【问题标题】:xts objects lose xts class when subsettingxts 对象在子集时丢失 xts 类
【发布时间】:2017-07-27 15:37:10
【问题描述】:

考虑以下内容。

junk1.xts <- xts(c(0:10), as.yearqtr("1975 Q1") + 0.25*(0:10))
junk2.xts <- xts(c(30:0), as.yearqtr("1970 Q1") + 0.25*(0:30))
junk2a.xts <- junk2.xts[index(junk1.xts),]
class(junk1.xts)
class(junk2.xts)
class(junk2a.xts)

前两个类语句导致:

[1] "xts" "zoo"

但第三个结果是:

[1] "zoo"

为什么?这是正常的还是错误的?防止它并为第三个对象保留 xts 类的最佳方法是什么?

【问题讨论】:

  • 我没有观察到 xts 0.10-0 的这种异常行为

标签: r subset xts


【解决方案1】:

我想我找到了问题所在。我正在尝试向 xts 对象添加一种以 Hmisc 为模型的标签功能。为此,我为[.xts 定义了一个函数。它最初是有效的,但后来我做了一些效率上的改变。其中一个破坏了函数。

抱歉给您带来不便。

【讨论】:

  • 我很想知道您的用例。可能有一种方法可以在不覆盖[.xts 的情况下做你想做的事。即使没有,请记住 xts 中的“x”代表“可扩展”。所以你可以继承 xts 并重写 [.xts 函数来做你想做的事。
  • 我正在启动一个涉及时间序列分析的研究项目,其中包含来自不同来源的几种时间序列——宏观经济总量、价格指数等。为了跟踪变量,我在对象和变量级别将标签和单位合并到 xts 对象中。所有都存储为 xtsAttributes。在对象级别,它们包括应用于整个 xts 对象的标量“标签”和“单位”项;在变量级别,它们包括变量名称 (var.labels) 和单位 (unit.labels) 的列表
猜你喜欢
  • 2013-05-27
  • 2019-06-15
  • 2014-09-01
  • 2013-12-30
  • 2011-11-06
  • 1970-01-01
  • 1970-01-01
  • 2012-08-02
  • 2012-12-04
相关资源
最近更新 更多