Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2024
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. library(data.table)
  2. library(tidyverse)
  3.  
  4. # ludwig institute data
  5. ludwig = readxl::read_xlsx("/Users/admin/Downloads/653a82ee789cb5e11330cb7f_TLC Data 2022.xlsx",
  6. sheet = "Inflation by expense category", range = "E1:M23")
  7.  
  8. # HUD FMR data
  9. hud_fmr = fread("/Users/admin/Downloads/FMR_2Bed_1983_2024(1).csv")
  10. hud_fmr_long = pivot_longer(hud_fmr %>% select(matches("fmr[0-9]+_"),
  11. fips, areaname24, pop2010),
  12. cols = contains("fmr"))
  13.  
  14. setDT(hud_fmr_long)
  15. hud_fmr_long[,year := as.numeric(str_extract(name, "[0-9]+"))]
  16. # fix the year variable from pivoting
  17. hud_fmr_long[,year := fifelse(year < 25, year + 2000, year + 1900)]
  18. # population weighted average of rent prices
  19. # this is a dumb way of aggregating but whatever
  20. hud_fmr_agg = hud_fmr_long[,weighted.mean(value, na.rm = T, w = pop2010), by = year ]
  21. # make percent change
  22. hud_fmr_agg[,p_change := (V1 - V1[year == 2001]) / V1[year == 2001]][]
  23.  
  24. # cpi data on housing
  25. cpi = fread("/Users/admin/Downloads/CUSR0000SEHA.csv")
  26. cpi[,year := as.numeric(str_extract(DATE, "[0-9]{4}"))]
  27. # take simple average over the year. also kinda dumb but whatever
  28. cpi_agg = cpi[, list(CUSR0000SEHA_NBD20010301 = mean(CUSR0000SEHA_NBD20010301)),
  29. by = year]
  30. # scale so 2001 = 0
  31. cpi_agg[,cpi_p_change := CUSR0000SEHA_NBD20010301/100 - 1]
  32.  
  33. # merge stuff together
  34. hud_fmr_agg = cpi_agg %>%
  35. merge( hud_fmr_agg, by = 'year') %>%
  36. merge( ludwig, by = 'year')
  37.  
  38. # make the pretty graph
  39. ggplot(hud_fmr_agg[year >= 2001], aes(x = year, group = 1)) +
  40. geom_line(aes(y = cpi_p_change, color = "BLS Data: Rent of Primary Residence")) +
  41. geom_line(aes(y = p_change, color = "HUD FMR Data")) +
  42. geom_line(aes(y = increasehousing, color = "Ludwig Data")) +
  43. labs(y = "Percent Change Since 2001", x = "Year", title = "Rent Inflation Since 2001")
  44.  
  45.  
  46.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement