У меня есть временной ряд, который был сгенерирован следующим образом.
y <- rnorm(1000, rep(c(10,15,12,6,9,7,1L,8,15), each=5),0.5)
myts <- ts(y, start=c(2009, 1), end=c(2015, 12), frequency=12)
Тип myts двойной.
typeof(myts)
[1] "double"
Я должен преобразовать его в массив данных с двумястолбцы, один для даты и другой для значения.
Я попытался преобразовать его в фрейм данных, используя следующее.
b <- as.data.frame(myts)
Он вернул список, когда я проверил его содержимое, используя head(b)
тамне было столбца даты, только значения.Если я проверяю тип данных столбца, он возвращает следующее.
'data.frame': 84 obs. of 1 variable:
$ x: Time-Series from 2009 to 2016: 9.6 10.15 9.83 9.48 10.23 ...
Но когда я строю график, мне дают график, который имеет измерение времени, начиная с 2009 по 2016 год. Я не знаю, каксобрал ли он измерение времени при построении данных.
Я попытался преобразовать myts другим способом,
df <- data.frame(date=as.Date(index(myts)), Y = melt(myts)$value)
Но он присоединяет другое измерение времени, когда я проверяю типы столбцов, используя str(df)
это дает мне следующее.
'data.frame': 84 obs. of 2 variables:
$ date: Date, format: "1975-07-03" "1975-07-03" "1975-07-03" "1975-07-03" ...
$ Y : Time-Series from 2009 to 2016: 9.6 10.15 9.83 9.48 10.23 ...
Мне нужны два столбца, одна дата и другое значение, или мне нужны два столбца из Y выше, один с годом и месяцами, а другой со значениямиили два столбца из b выше, который возвращает один столбец с датой и значениями.Я должен дать это в качестве входных данных для алгоритма обнаружения аномалий в Twitter, пророка Facebook и пакета Changepoint, который ожидает две разные колонки.
Как я могу это сделать?