【发布时间】:2017-03-29 10:19:17
【问题描述】:
对于任何不遵守发布问题规则的行为,我提前致歉。下面的数据表是我要转换为时间序列的示例。
> Materials
MaterialID Date Quantity
1 2011-01-04 13
1 2011-01-04 5
2 2011-01-07 9
3 2011-01-09 3
3 2011-01-11 10
它由 2011-2014 之间的几个物料项目的交易条目组成。整个数据集的日期范围是 2011 年 1 月 4 日 - 2014 年 12 月 31 日。我想在此期间为每个物料创建一个交易条目,而通过将缺失日期的 Quantity 变量设置为零来计算缺失日期。换句话说,我希望的结果是,对于 2011 年 1 月 4 日至 2014 年 12 月 31 日之间的每个日期,数据集中的每种材料都会有一个条目,如下所示:
Date MaterialID_1 MaterialID_2 MaterialID_3
2011-01-04 13 0 0
2011-01-04 5 0 0
2011-01-05 0 0 0
2011-01-06 0 0 0
2011-01-07 0 9 0
2011-01-08 0 0 0
2011-01-09 0 0 3
2011-01-10 0 0 10
2011-01-11 0 0 0
. . . .
. . . .
. . . .
2014-12-31 0 0 0
我尝试了一些我在论坛中看到的方法,例如Add months of zero demand to zoo time series,但是因为我有重复的日期,我得到了错误,“'order.by' 中的索引条目不是唯一的”。如果我能得到任何建议或帮助,我将不胜感激。
把数据弄成这种格式后,我的意图是重塑数据集做批量预测。谢谢。
见下面的输入代码:
dput(Data)
structure(list(MaterialID = c(1L, 1L, 2L, 3L, 1L), Date = c("2011-01-04",
"2011-01-04", "2011-01-07", "2011-01-09", "2011-01-11"), Quantity = c(13L,
5L, 9L, 3L, 10L)), .Names = c("MaterialID", "Date", "Quantity"
), class = "data.frame", row.names = c(NA, -5L))
【问题讨论】:
-
不要使用图像来显示输入数据。如果 DF 是显示的 9 行,则在您的问题中显示 dput(DF) 的输出,并显示预期的输出是什么。如果输出太长,请更改您的问题,因此不会太长。阅读minimal reproducible example。
-
@G.Grothendieck。感谢您的指导。仍在学习中,但我会确保我未来的帖子和示例更符合这里的预期。
-
@G.Grothendieck。是的,这在这种情况下很有用。现在,我只想用这些数据来做一个 12 个月的预测。谢谢!
-
@G.Grothendieck 我试图解决这个问题。希望它现在看起来更好吗?
标签: r time-series zoo