【问题标题】:R: Subset a zoo object?R:子集一个动物园对象?
【发布时间】:2012-02-27 00:32:56
【问题描述】:

给定一个日期,我可以访问动物园矢量中的适当元素。 例如:

z[as.POSIXct(1213708500, origin="1970-01-01")]

返回

2008-06-17 14:15:00 
           -8.28123 

我想得到一个包含 30 个连续元素的向量(以上面的元素结尾)。

在不知道起始元素的时间戳的情况下如何(有效地)做到这一点?

我知道我可以使用window 函数来做到这一点,但它需要一个开始时间和一个结束时间。

【问题讨论】:

  • 您是否要进行滚动计算?如果是这种情况,请参阅?rollapply

标签: r time-series zoo


【解决方案1】:

使用类似的东西

ind <- which(index(z)==as.POSIXct(1213708500, origin="1970-01-01")) + seq(-29,0)

紧随其后

z[ind]

which() 为您提供匹配的索引,然后您可以通过正常索引从中选择 30 个连续元素。

【讨论】:

  • 非常感谢!你能告诉我,如果我有一个时间戳向量而不是时间戳 (1213708500),我如何将矩阵返回到ind
  • 嗯,这可能“只是”是法线向量值索引问题。尝试查看help(match) / help("%in%")。另外,我真的很喜欢 xts 包的索引,您可以在其中说 x["2010-01::2010-06"] 之类的内容来获得六个月,并以小时/分钟/秒/... 等方式同理。最终,这更好,因为在我们在这里讨论的内容中,你确实依赖于某个地方的平等。那就是说min(which(... &gt;= ...)) 我想也可以。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-14
  • 2012-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-02
  • 1970-01-01
相关资源
最近更新 更多