【问题标题】:Change dates to number [closed]将日期更改为数字[关闭]
【发布时间】:2021-10-16 07:15:39
【问题描述】:
tsReturns = xts(x = returns, order.by = dates)

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

【问题讨论】:

  • 同一个日期可以出现多次吗?
  • 如果您可以使用dput 提供您的数据的一小部分sn-p,或许您想要实现的目标的示例将大大提高您获得有用回复的机会

标签: r time-series


【解决方案1】:

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)

【讨论】:

    猜你喜欢
    • 2018-11-23
    • 1970-01-01
    • 2013-09-15
    • 2020-10-22
    • 1970-01-01
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多