可以从列表中创建xts对象吗?

时间:2013-05-30 23:31:34

标签: r xts

我想将xts类应用于列表。

y <- list(1, 2, 3)
tm <- Sys.time() + 1:3
require(xts)
xts(x = y, order.by = tm)
## Error in coredata.xts(x) : currently unsupported data type

公平地说,扩展它是否相当简单,以便我可以为我自己的(列表扩展)类工作?我是否为适用于我自己班级的coredataindexxts编写方法,或者我是否需要先为list添加类似的方法?

我在文档或小插图中找不到任何内容,但我可能遗漏了一些明显的东西。

主要是我想基于递归向量创建一个简单的类,然后将xtsindex的{​​{1}}工具应用于此。提取工具允许使用简单的字符串按时间间隔进行索引,即[“2013-05-31 10”]表示当天10:00:00到10:59:59之间的间隔,这是我的功能喜欢[

2 个答案:

答案 0 :(得分:0)

xts对象(实质上)是数字矩阵加索引属性。

因此约束是a)有一个数字矩阵(你知道如何从列表中创建)和b)有一个POSIXt对象的索引。

如果您对列表感兴趣,请将您的数据保存为... xts对象列表。

答案 1 :(得分:0)

探索源代码表明,如果没有实质性的工作,这是不可能的(正如Joshua在上面的评论中所说)。

提供对输入类型的一般支持的代码是以xts为单位的C,因此单独使用它可以在原子向量,矩阵和data.frames之外应用它。

zoo中的类似代码是纯R,因此可以更轻松地工作,但我希望支持允许按时间间隔使用简单的字符串进行索引,即[“2013-05-31 10” ]表示当天10:00:00至10:59:59之间的间隔。

我能看到的最佳选择是

  1. 挖掘或重新创建时间间隔索引的代码并应用于新类
  2. 创建包含xts的对象,并定义将支持传播到递归列表组件的方法。 (在整个S4上下文中有这样的例子,例如在spacetime中。)