我以下列格式从MySQL检索数据:
date newCustomers
2016-07-27 31
2016-07-26 3
数据从日期2015-02-25
开始,每天都有一个条目。
我想将此数据框转换为时间序列以进行预测。
我尝试了以下内容:
dataTimeSeries <- ts(data, start=c(2015,2,25), frequency=365.25)
它给了我一个警告In data.matrix(data) : NAs introduced by coercion
。在检查dataTimeSeries中的内容时,这就是我找到的
date day
2016.000 NA 31
2016.003 NA 3
2016.005 NA 2
2016.008 NA 0
我做错了什么,请指出正确的方向?
更新:根据建议,我尝试了dataTimeSeries <- ts(data$newCustomers, start=c(2015,2,25), frequency=365.25)
,它给了我以下结果
Time Series:
Start = 2015.00273785079
End = 2015.9993155373
Frequency = 365.25
[1] 31 3 2 0 101 69 8 4 15 3 1 22 47 85 359 6 7 2 134 44 20 61 2 0 4 2373 4243 7 31 11 2 0 25 1689 24 74
[37] 22 0 1 336 373 14 11 145 7 0 1 19 49 522 19 1 39 1611 9 675 21 1 45 4 156 180 747 265 169 0 0 4 7 3 4 10
[73] 64 1 3 5 2 13 15 0 6 0 13 2 13 10 5 14 16 28 134 8 2 0 0 9 29 7 79 17 1 4 167 6 64 334 14 0
[109] 0 13 17 57 66 3 0 0 25 2 4 22 16 2 0 23 23 169 9912 24 8 3 154 3 2 29 29 243 0 6 2 72 66 7 1 0
[145] 24 208 13 6 7 10 4 54 79 72 9 29 31 208 224 18 50 65 152 50 10 55 107 249 178 3 0 0 627 19 220 20 285 0 1 11
[181] 26 25 88 9 2 7 64 54 212 295 37 49 19 144 30 78 29 97 210 143 4 294 2 34 642 24 0 0 1 4 0 0 0 0 0 0
[217] 2 3 9 0 0 62 6 16 0 12 0 21 3 6 5 8 1 1 0 3 40 16 1 0 0 66 0 0 1 8 6 1 14 26 4 4
[253] 285 4 0 0 0 3 1 0 28 0 0 24 360 0 0 2 3 0 11 294 578 1 4 0 0 19 2 7 10 0 0 1 20 1 59 19
[289] 2 0 0 9 19 12 4 10 5 4 5 5 7 38 10 5 6 9 18 22 30 28 13 14 22 22 35 12 6 3 3 15 3 3 28 1
[325] 0 0 7 45 21 14 21 0 0 22 14 17 799 7 0 3 8 20 21 107 75 3 3 39 36 137 42 39 6 16 113 11 6 10 8 6
[361] 6 8 21 12 81
这是不正确的。
答案 0 :(得分:0)
这应该有效,因为你只需要将数据(而不是时间)提供给ts():
dataTimeSeries <- ts(data$newCustomers, ...)
您的数据也可能在观察之间没有规则的间隔时间吗?时间序列最适用于在观察日期之间间隔相等的数据集。您可以看到Analyzing Daily/Weekly data using ts in R用于分析数据的其他方法,这些方法不一定具有等间隔时间。