首页 > 解决方案 > 将日期更改为数字

问题描述

tsReturns = xts(x = returns, order.by = dates)

我有一个按日期排序的时间序列,如何将其更改为按数字(1-n)排序?第一天对应1,最后一天对应n。不要更改数据集值。

标签: rtime-series

解决方案


1) xts 不支持纯数字索引。它需要几个日期或日期时间类之一;但是,可以使用 zoo 或 ts 实现纯数字索引。如果 x 是一个 xts 对象并且我们希望普通数字索引是从 1 到 nrow(x) 的连续数字,那么:

zoo(coredata(x))

ts(coredata(x))

2)如果改为:

  • 第 i 行的所需索引是自第一个日期以来的天数加 1 和
  • x 的索引是Date类和
  • 日期不是连续的,而是唯一的,例如周末有间隔

那么这将为动物园提供一个不连续的索引。由于 ts 只能表示规则间隔的系列,因此下面的 ts 解决方案将使用 NA 填充输入中没有日期的值。

tt <- as.numeric(time(x))
z <- zoo(coredata(x), tt - tt[1] + 1)

as.ts(z)

推荐阅读