27 lines
1.4 KiB
R
27 lines
1.4 KiB
R
#A function to extract date from FRED. Assumes the date is either annual or monthly.
|
|
FRED_GET <- function(FRED_SERIES_ID,NAME=NA,ST_DATE='1890-01-91',END_DATE=Sys.Date(),ANNUAL_DATA=TRUE){
|
|
NAME <- ifelse(is.na(NAME),FRED_SERIES_ID,NAME)
|
|
DATA_TIME_FRAME <- ifelse(ANNUAL_DATA,"Annual","Monthly")
|
|
URL <- paste0('https://fred.stlouisfed.org/graph/fredgraph.csv?bgcolor=%23ebf3fb&chart_type=line&drp=0&fo=open%20sans&graph_bgcolor=%23ffffff&height=450&mode=fred&recession_bars=off&txtcolor=%23444444&ts=12&tts=12&width=827&nt=0&thu=0&trc=0&show_legend=no&show_axis_titles=no&show_tooltip=no&id=',FRED_SERIES_ID,'&scale=left&cosd=',ST_DATE,'&coed=',END_DATE,'&line_color=%230073e6&link_values=false&line_style=solid&mark_type=none&mw=3&lw=3&ost=-99999&oet=99999&mma=0&fml=a&fq=',DATA_TIME_FRAME,'&fam=avg&fgst=lin&fgsnd=2020-02-01&line_index=1&transformation=lin&vintage_date=',END_DATE,'&revision_date=',END_DATE,'&nd=',END_DATE)
|
|
DATA <- read_csv(URL)
|
|
DATA <- DATA[which(!is.na(DATA[,2] )),]
|
|
colnames(DATA)[2] <- NAME
|
|
if(ANNUAL_DATA){
|
|
colnames(DATA)[1] <- "YEAR"
|
|
DATA$YEAR <- year(DATA$YEAR)
|
|
}else{
|
|
colnames(DATA)[1] <- "DATE"
|
|
}
|
|
return(DATA)
|
|
}
|
|
|
|
CPI_ADJUST <- function(DATA){
|
|
CPI <- FRED_GET("CPIAUCSL") %>% filter(!is.na(CPIAUCSL))
|
|
CPI$CPI_ADJ <- as.numeric(CPI[which.max(CPI$YEAR),2])/CPI$CPIAUCSL
|
|
CPI <- CPI %>% select(-"CPIAUCSL")
|
|
DATA <- DATA %>% left_join(CPI)
|
|
DATA[,2] <- DATA[,2]*DATA[,"CPI_ADJ"]
|
|
DATA <- DATA%>% select(-"CPI_ADJ")
|
|
return(DATA)
|
|
}
|