【问题标题】:Time Series date format issue in RR中的时间序列日期格式问题
【发布时间】:2016-05-08 18:06:13
【问题描述】:

我正在使用 [dowjones][1] 数据集,但我认为我的日期格式可能不正确,因为当我运行 zoo 函数来制作数据时间序列时,我收到警告:

如果索引条目在 “order.by”不是唯一的

我的代码:

dow = read.table('dow_jones_index.data', header=T, sep=',')
dowts = zoo(dow$close, as.Date(as.character(dow$date), format = "%m/%d/%Y"))

日期如下所示:5/6/2011

我的错误是否与使用不正确的日期格式有关?还是别的什么?

谢谢。

编辑:

hist(dowts, xlab='close change rate', prob=TRUE, main='Histogram',ylim=c(0,.07))

在 hist.default(dowts, xlab = "close change rate", prob = TRUE, : 字符(0) 另外:警告信息:1:在动物园(rval[i], index(x)[i]) :如果“动物园”对象的某些方法不起作用 “order.by”中的索引条目不是唯一的 2:在 pretty.default(range(x), n = breaks, min.n = 1) : NAs 由 强制[1]: https://archive.ics.uci.edu/ml/datasets/Dow+Jones+Index

【问题讨论】:

  • 什么是zoo方法?
  • “包“动物园”提供了处理完全有序索引观察的方法。换句话说,它允许创建和操作时间序列。但是这个包的主要目标是处理“不规则时间序列”,其中R 的基本包不允许处理不规则间隔的观察。因此,关键特征是特定索引/日期/时间的独立性。不仅这个“动物园”包与“ts”和“基本”R 一致。”
  • 我不想提供自己的定义,因为我不熟悉使用它以及处理时间序列数据。参考:people.stat.sfu.ca/~dac5/CompStat/CompStat2013/…
  • 这不是错误...这是警告!!

标签: r import time-series zoo date-formatting


【解决方案1】:

警告消息表明的问题是您的日期值不是唯一的。这是因为您的数据是包含多个股票的长格式。时间序列必须采用类似矩阵的结构,每一列代表一个股票,每一行代表一个时间点。使用 dcast 包中的 reshape2 直截了当:

library(zoo)
library(reshape2)

dow <-  read.table('dow_jones_index.data', header=T, sep=',', stringsAsFactors = FALSE)
# delete $ symbol and coerce to numeric
dow$close <-  as.numeric(sub("\\$", "",dow$close))
tmp <- dcast(dow, date~stock, value.var = "close")
dowts <- as.zoo(x = tmp[,-1], order.by = as.Date(tmp$date, format = "%m/%d/%Y"))

【讨论】:

  • 非常感谢!我不知道 dcast 或多个股票不能在同一日期,除非它们被分成列。我有一个问题。为什么你删除了 as.zoo(tmp[.-1] 中的日期,但又添加了日期?为什么不直接格式化 tmp 中的第一列日期?
  • 也是一个旁注。当我测试我在此处发布的偏度 (stackoverflow.com/questions/35113719/…) 时遇到另一个错误,您是否知道我为什么会收到该错误?谢谢。
  • 我不再添加日期,而是将其作为 order.by 的索引提供。您也可以将日期列保留在 x 中,但是当您已经在时间索引中拥有数据时,我看不出保留它的意义。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-26
  • 2017-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多