【问题标题】:Do/should index matrices work with xts object?索引矩阵是否/应该与 xts 对象一起使用?
【发布时间】:2013-02-20 12:34:12
【问题描述】:

当我将索引矩阵与 xts 对象一起使用时,我得到了令人惊讶的结果。见下文。

如果我将 x 强制转换为矩阵,它会按预期工作(不出所料)。

感谢您的帮助。

> data(sample_matrix)
> x<- as.xts(sample_matrix)
> i<- matrix(1:4, 2, 2,  byrow=T )
> i
     [,1] [,2]
[1,]    1    2
[2,]    3    4
> head(x)
               Open     High      Low    Close
2007-01-02 50.03978 50.11778 49.95041 50.11778
2007-01-03 50.23050 50.42188 50.23050 50.39767
2007-01-04 50.42096 50.42096 50.26414 50.33236
2007-01-05 50.37347 50.37347 50.22103 50.33459
2007-01-06 50.24433 50.24433 50.11121 50.18112
2007-01-07 50.13211 50.21561 49.99185 49.99185
> x[i]<- NA
> head(x)
               Open     High      Low    Close
2007-01-02       NA 50.11778 49.95041 50.11778
2007-01-03       NA 50.42188 50.23050 50.39767
2007-01-04       NA 50.42096 50.26414 50.33236
2007-01-05       NA 50.37347 50.22103 50.33459
2007-01-06 50.24433 50.24433 50.11121 50.18112
2007-01-07 50.13211 50.21561 49.99185 49.99185

【问题讨论】:

  • ?`[.xts` ,它并没有声称支持索引矩阵。
  • 谢谢 mnel - 我没有看到那个页面。我真正的问题是我想分配给子集,而不是提取它。我能想到的最佳解决方法是将我的时间序列强制转换为矩阵,进行分配,然后将其转回 xts 对象。
  • 我相信你最终会在这里得到回复,至少有一位xts作者是SO的常客。
  • 我想到了一个更好的解决方法:coredata(x)[i]
  • 将其添加为答案!

标签: r xts


【解决方案1】:

我有一个解决方法。而不是

x[i]<- NA

使用核心数据:

> coredata(x)[i]<- NA
> head(x)
               Open     High      Low    Close
2007-01-02 50.03978       NA 49.95041 50.11778
2007-01-03 50.23050 50.42188 50.23050 50.39767
2007-01-04 50.42096 50.42096 50.26414       NA
2007-01-05 50.37347 50.37347 50.22103 50.33459
2007-01-06 50.24433 50.24433 50.11121 50.18112
2007-01-07 50.13211 50.21561 49.99185 49.99185

尽管在我(初学者)看来,xts 在原始代码中做错了事。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-29
    • 2012-12-29
    • 1970-01-01
    • 2021-11-26
    相关资源
    最近更新 更多