Преобразование ежемесячных и квартальных данных в годовые в R

#r #data-conversion

#r #преобразование данных

Вопрос:

Привет, я пытаюсь научиться использовать данные FRED для преобразования ежемесячных и квартальных данных в годовые. Мои данные выглядят так:

    Date FEDFUNDS
7/1/2000    6.54
8/1/2000    6.5
9/1/2000    6.52
10/1/2000   6.51
11/1/2000   6.51
12/1/2000   6.4
 

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

 library(tidyverse)
data<- read_csv(file.choose())
head(data)
data$Date=as.Date(data$Date, formate="$m/$d/%y")
data<-arrange(data,Date)
library(zoo)
data$qdate<-as.yearqtr(data$Date)
library(date)
data_qrtly<-data %>%
  group_by(qdate) %>%
  summarise_all(mean)
 

Но мне трудно использовать «DF» для преобразования ежемесячных или квартальных данных в годовые. Любая помощь будет очень признательна.

Комментарии:

1. Если x это yearqtr yearmon объект or, то as.integer(x) — это год, поскольку оба хранятся как год доля года за месяц или квартал.

Ответ №1:

Как вы хотите обобщить полученные данные? Я предполагаю, что вам нужно mean количество федеральных фондов по годам. Это легко сделать в tidyverse :

 library(tidyverse)
library(lubridate)

test_data <- tribble(~Date, ~FEDFUNDS,
                     "7/1/2000", 6.54,
                     "8/1/2000", 6.5,
                     "9/1/2000", 6.52,
                     "10/1/2000", 6.51,
                     "11/1/2000", 6.51,
                     "12/1/2000", 6.4)

#convert the date into a date type column
#create a new "year" column
test_data %>% 
  mutate(Date = lubridate::mdy(Date),
         year = lubridate::year(Date)) %>% 
  group_by(year) %>% 
  summarize(fedfunds_mean = mean(FEDFUNDS))

# A tibble: 1 x 2
year fedfunds_mean
<dbl>         <dbl>
2000          6.50
 

Комментарии:

1. Привет, спасибо, я думаю, это было очень полезно. У меня было два последующих вопроса 1) Я новичок в R, поэтому заранее прошу прощения за глупый вопрос, но как мне использовать tribble для всего моего набора данных, а не указывать отдельные наблюдения? это наблюдение за временными рядами за 30 лет, я понял, что вы сделали с lubridate, но краткое предложение о том, как использовать для всего набора данных, было бы чрезвычайно полезно. 2) Могу ли я в любом случае преобразовать весь столбец new year в набор данных (например, команду write.csv?)

2. @ShaneMurphy 1) я использовал tribble только для создания набора данных toy. Вам нужно будет прочитать набор данных FRED в R с помощью чего-то вроде readr::read_csv или read_tsv, в зависимости от делиметра. Я не знаю, как выглядит ваш источник данных. github.com/business-science/tidyquant и sboysel.github.io/fredr это два пакета, которые вы могли бы использовать для извлечения данных из FRED API. 2) Я не знаю, что вы подразумеваете под «преобразованием в набор данных». write.csv сохраняет фрейм данных (не отдельный столбец) на диск.