我有以下数据集,这是一个数据帧。但我想将其转换为时间序列,以便我可以进行ARIMA预测。 搜索了SO中的各种主题,但找不到与YEARMONTH谷物类似的任何东西。每个人都谈到了约会领域。但在这里,我没有约会。 我使用下面的代码,但这给出了错误
dataset <- data.frame(year =c(2017), YearMonth = c(201701,201702,201703,201704), sales = c(100,200,300,400))
library(zoo)
newdataset <- as.ts(read.zoo(dataset, FUN = as.yearmon))
# Error:
#
# In zoo(coredata(x), tt) :
# some methods for “zoo” objects do not work if the index entries in ‘order.by’ are not unique
我知道它会出错,因为我将第一列作为第一列没有唯一值,但不确定如何修复它。
任何帮助都会非常感激。
此致 阿卡什
答案 0 :(得分:2)
一种选择是将YearMonth
转换为一个月的第一个日期并生成ts
。
library(zoo)
dataset$YearMonth = as.Date(as.yearmon(as.character(dataset$YearMonth),"%Y%m"), frac = 0)
dataset
# year YearMonth sales
# 1 2017 2017-01-01 100
# 2 2017 2017-02-01 200
# 3 2017 2017-03-01 300
# 4 2017 2017-04-01 400
仅适用于ts
另一个选项是:
dataset$YearMonth = as.yearmon(as.character(dataset$YearMonth),"%Y%m")
as.ts(dataset[-1])
# Time Series:
# Start = 1
# End = 4
# Frequency = 1
# YearMonth sales
# 1 2017.000 100
# 2 2017.083 200
# 3 2017.167 300
# 4 2017.250 400