Как конвертировать месячные временные ряды в R - PullRequest
0 голосов
/ 11 декабря 2018

Я работаю над ежемесячным набором данных временных рядов:

> head(data, n=10)
# A tibble: 10 x 2
   Month               Inflation
   <dttm>                  <dbl>
 1 1979-01-01 00:00:00    0.0258
 2 1979-02-01 00:00:00    0.0234
 3 1979-03-01 00:00:00    0.0055
 4 1979-04-01 00:00:00    0.0302
 5 1979-05-01 00:00:00    0.0305
 6 1979-06-01 00:00:00    0.0232
 7 1979-07-01 00:00:00    0.025 
 8 1979-08-01 00:00:00    0.0234
 9 1979-09-01 00:00:00    0.0074
10 1979-10-01 00:00:00    0.0089

Хотя кажется, что данные еще предстоит распознать как данные временных рядов, поскольку они показывают следующую структуру:

> str(data)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame':   479 obs. of  2 variables:
 $ Month    : POSIXct, format: "1979-01-01" "1979-02-01" "1979-03-01" "1979-04-01" ...
 $ Inflation: num  0.0258 0.0234 0.0055 0.0302 0.0305 0.0232 0.025 0.0234 0.0074 0.0089 ...

Когда я пытался преобразовать его с помощью функции xts, он выдал мне такую ​​ошибку:

> inflation <- xts(data[,-1], order.by=as.Date(data[,1], "%m/%d/%Y"))
Error in as.Date.default(data[, 1], "%m/%d/%Y") : 
  do not know how to convert 'data[, 1]' to class “Date”

Пожалуйста, помогите мне с наиболее подходящим способом преобразования данных.Спасибо

1 Ответ

0 голосов
/ 11 декабря 2018
# You have something like:
data <- data.frame(
  Month = as.Date(as.Date("1979-01-01"):as.Date("2000-01-01"), origin="1970-01-01"),
  Inflation = rnorm(7671)) # same number of obs

Создать TS

выбрать даты начала и окончания соответственно

tseries <- ts(data$Inflation, start = c(1979,1), end = c(2000,1), frequency = 12)
plot(tseries)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...