为什么这个xts频率总是1?
Why is this xts frequency always 1?
我正在创建一个每周(7 天)频率的 xts 对象以用于预测。但是,即使在 xts
调用中使用 frequency=7
参数,生成的 xts 对象的频率也是 1。
这是一个随机数据的例子:
> values <- rnorm(364, 10)
> days <- seq.Date(from=as.Date("2014-01-01"), to=as.Date("2014-12-30"), by='days')
> x <- xts(values, order.by=days, frequency=7)
> frequency(x)
[1] 1
我也试过,使用上面的代码后,frequency(x) <- 7
。但是,这会将 x
的 class 更改为仅 zooreg
和 zoo
,丢失 xts
class 并弄乱时间戳格式。
xts 是否会以某种方式根据数据分析自动选择频率?如果是这样,您如何覆盖它以设置用于预测目的的特定频率(在这种情况下,将季节性时间序列从预测包传递到 ets
)?
我知道 xts 可能不允许没有意义的频率,但是带有每日时间戳的 7 频率似乎很合乎逻辑。
连续日期 class 日期的频率始终为 1,因为连续日期相隔 1。使用ts或zooreg得到频率为7:
tt <- ts(values, frequency = 7)
library(zoo)
zr <- as.zooreg(tt)
# or
zr <- zooreg(values, frequency = 7)
这些将创建一个序列,其时间为 1、1+1/7、1+2/7、...
如果我们有zr的一些索引值
zrdates <- index(zr)[5:12]
我们可以像这样从 zrdates
恢复日期:
days[match(zrdates, index(zr))]
正如评论中所指出的,xts 不支持此类系列。
我正在创建一个每周(7 天)频率的 xts 对象以用于预测。但是,即使在 xts
调用中使用 frequency=7
参数,生成的 xts 对象的频率也是 1。
这是一个随机数据的例子:
> values <- rnorm(364, 10)
> days <- seq.Date(from=as.Date("2014-01-01"), to=as.Date("2014-12-30"), by='days')
> x <- xts(values, order.by=days, frequency=7)
> frequency(x)
[1] 1
我也试过,使用上面的代码后,frequency(x) <- 7
。但是,这会将 x
的 class 更改为仅 zooreg
和 zoo
,丢失 xts
class 并弄乱时间戳格式。
xts 是否会以某种方式根据数据分析自动选择频率?如果是这样,您如何覆盖它以设置用于预测目的的特定频率(在这种情况下,将季节性时间序列从预测包传递到 ets
)?
我知道 xts 可能不允许没有意义的频率,但是带有每日时间戳的 7 频率似乎很合乎逻辑。
连续日期 class 日期的频率始终为 1,因为连续日期相隔 1。使用ts或zooreg得到频率为7:
tt <- ts(values, frequency = 7)
library(zoo)
zr <- as.zooreg(tt)
# or
zr <- zooreg(values, frequency = 7)
这些将创建一个序列,其时间为 1、1+1/7、1+2/7、...
如果我们有zr的一些索引值
zrdates <- index(zr)[5:12]
我们可以像这样从 zrdates
恢复日期:
days[match(zrdates, index(zr))]
正如评论中所指出的,xts 不支持此类系列。