This table shows the prices of studio, to 4-bedroom apartments across all Rutherford County ZIP codes. 4-bedroom units are significantly more that studio apartments. However, the size of that gap varies by area. Some ZIP codes have a much larger price difference, indicating a stronger premium for larger homes, while others show a smaller spread. The 37037 ZIP code is the largest difference while the 37149 ZIP code has the smallest difference. In this table, the differences are ranked in descending order to easily show the difference in each ZIP code.
| Rutherford Rent Analysis | ||||||
| ZIP | Studio | BR1 | BR2 | BR3 | BR4 | Spread |
|---|---|---|---|---|---|---|
| 37037 | 1900 | 1990 | 2180 | 2790 | 3400 | 1500 |
| 37086 | 1730 | 1820 | 1990 | 2540 | 3100 | 1370 |
| 37153 | 1670 | 1750 | 1920 | 2450 | 2990 | 1320 |
| 37128 | 1570 | 1640 | 1800 | 2300 | 2800 | 1230 |
| 37129 | 1570 | 1640 | 1800 | 2300 | 2800 | 1230 |
| 37167 | 1430 | 1500 | 1640 | 2100 | 2560 | 1130 |
| 37127 | 1360 | 1420 | 1560 | 1990 | 2430 | 1070 |
| 37085 | 1320 | 1380 | 1520 | 1940 | 2360 | 1040 |
| 37130 | 1280 | 1340 | 1470 | 1880 | 2290 | 1010 |
| 37132 | 1280 | 1340 | 1470 | 1880 | 2290 | 1010 |
| 37118 | 1150 | 1170 | 1320 | 1660 | 2020 | 870 |
| 37149 | 1150 | 1180 | 1320 | 1660 | 2020 | 870 |
# ----------------------------------------------------------
# Install & load required packages
# ----------------------------------------------------------
if (!require("tidyverse"))
install.packages("tidyverse")
if (!require("gt"))
install.packages("gt")
library(tidyverse)
library(readxl)
library(gt)
# ----------------------------------------------------------
# Download HUD SAFMR Excel file
# ----------------------------------------------------------
download.file(
"https://www.huduser.gov/portal/datasets/fmr/fmr2026/fy2026_safmrs.xlsx",
"rent.xlsx",
mode = "wb"
)
# ----------------------------------------------------------
# Read Excel data
# ----------------------------------------------------------
FMR <- read_xlsx(path = "rent.xlsx", .name_repair = "universal")
# ----------------------------------------------------------
# Rutherford County ZIP Codes
# ----------------------------------------------------------
ZIPList <- c(
"37127", "37128", "37129", "37130", "37132",
"37085", "37118", "37149", "37037", "37153",
"37167", "37086"
)
# ----------------------------------------------------------
# Filter, select columns, and rename
# ----------------------------------------------------------
FMR_RuCo <- FMR %>%
filter(ZIP.Code %in% ZIPList) %>%
select(
ZIP.Code,
SAFMR.0BR,
SAFMR.1BR,
SAFMR.2BR,
SAFMR.3BR,
SAFMR.4BR
) %>%
distinct()
colnames(FMR_RuCo) <- c("ZIP", "Studio", "BR1", "BR2", "BR3", "BR4")
# ----------------------------------------------------------
# Add your code to this section
# ----------------------------------------------------------
FMR_RuCo <- FMR_RuCo %>%
mutate(
across(Studio:BR4, ceiling),
Spread = ceiling(BR4 - Studio)
) %>%
arrange(desc(Spread))
# ----------------------------------------------------------
# Displaying the table (no $, no commas, whole numbers)
# ----------------------------------------------------------
FMR_RuCo_table <- gt(FMR_RuCo) %>%
tab_header(title = "Rutherford Rent Analysis") %>%
cols_align(align = "left") %>%
fmt_number(
columns = Studio:Spread,
decimals = 0,
use_seps = FALSE
)
FMR_RuCo_table