Advertisement
Guest User

Untitled

a guest
Dec 7th, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 1.70 KB | None | 0 0
  1. ####################################################################
  2. ### Add recession bars to ggplot graphs
  3. ####################################################################
  4. geom_recession_bars <- function (date_df_start, date_df_end) {
  5.  
  6.   recessions_df = read.table(textConnection(
  7.     "peak, trough
  8.   1857-06-01, 1858-12-01
  9.   1860-10-01, 1861-06-01
  10.   1865-04-01, 1867-12-01
  11.   1869-06-01, 1870-12-01
  12.   1873-10-01, 1879-03-01
  13.   1882-03-01, 1885-05-01
  14.   1887-03-01, 1888-04-01
  15.   1890-07-01, 1891-05-01
  16.   1893-01-01, 1894-06-01
  17.   1895-12-01, 1897-06-01
  18.   1899-06-01, 1900-12-01
  19.   1902-09-01, 1904-08-01
  20.   1907-05-01, 1908-06-01
  21.   1910-01-01, 1912-01-01
  22.   1913-01-01, 1914-12-01
  23.   1918-08-01, 1919-03-01
  24.   1920-01-01, 1921-07-01
  25.   1923-05-01, 1924-07-01
  26.   1926-10-01, 1927-11-01
  27.   1929-08-01, 1933-03-01
  28.   1937-05-01, 1938-06-01
  29.   1945-02-01, 1945-10-01
  30.   1948-11-01, 1949-10-01
  31.   1953-07-01, 1954-05-01
  32.   1957-08-01, 1958-04-01
  33.   1960-04-01, 1961-02-01
  34.   1969-12-01, 1970-11-01
  35.   1973-11-01, 1975-03-01
  36.   1980-01-01, 1980-07-01
  37.   1981-07-01, 1982-11-01
  38.   1990-07-01, 1991-03-01
  39.   2001-03-01, 2001-11-01
  40.   2007-12-01, 2009-06-01"),
  41.     sep = ',',
  42.     colClasses = c('Date', 'Date'),
  43.     header = TRUE)
  44.  
  45.    recessions_trim <- subset(recessions_df, peak >= min(date_df_start) &
  46.                               trough <= max(date_df_end))
  47.  
  48.   if (nrow(recessions_trim) > 0) {
  49.     recession_bars = geom_rect(data = recessions_trim, inherit.aes = F,
  50.                                fill = "darkgray", alpha = 0.25,
  51.                                aes(xmin = peak, xmax = trough, ymin = -Inf, ymax = +Inf))
  52.   } else {
  53.     recession_bars = geom_blank()
  54.   }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement