Преобразование кадра данных во временные ряды в r - PullRequest
0 голосов
/ 05 декабря 2018

В настоящее время я пытаюсь преобразовать data.frame во временные ряды.Фрейм данных выглядит следующим образом:

Data Frame

Все, что я хочу сделать, это иметь возможность построить данные документа в зависимости от времени и запустить статистическийпроверить его.

Любая помощь будет принята с благодарностью!

Вот как выглядит мой код:

x=aggregate( doc ~ mo + yr , B , mean )
x$Date <- as.yearmon(paste(x$yr, x$mo), "%Y %m")
df_ts <- xts(x, order.by = x$Date)
keeps <- "doc"
df_ts <- df_ts[ , keeps, drop = FALSE]
df_ts_1 <- as.ts(df_ts, start = head(index(df_ts), 1), end = 
tail(index(df_ts), 1))

Проблема, с которой я сталкиваюсь, заключается в том, чтомесяцы и годы расположены не по порядку, поэтому, когда я пытаюсь применить функцию as.tf, данные не заполняются правильно.

1 Ответ

0 голосов
/ 05 декабря 2018

Используя DF, определенно воспроизводимый в примечании, в конце считайте фрейм данных в объект зоопарка, преобразовав столбец Date в класс yearmon и построите график, используя ggplot2.Если существуют повторяющиеся даты (в данных примера их нет), добавьте аргумент aggregate = mean к read.zoo.

library(ggplot2)
library(zoo)

z <- read.zoo(DF[c("Date", "doc")], FUN = as.yearmon, format = "%b %Y")
autoplot(z) + scale_x_yearmon()

. Это также будет работать:

tt <- as.ts(z)
plot(na.approx(tt), ylab = "tt")

Примечание

В будущем, пожалуйста, не используйте изображения.На этот раз я набрал первые три строки.

DF <- data.frame(month = c("02", "10", "12"), year = c(1998, 2000, 2000),
 doc = c(1.55, 2.2, 0.96), Date = c("Feb 1998", "Oct 2000", "Dec 2000"),
 stringsAsFactors = FALSE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...