Construct a baseline-conditional 3-level gentrification factor
Source:R/mrm_primitives_gentrification.R
mrm_gentrification_panel.RdImplements the Laniyonu (2018) operationalisation:
Usage
mrm_gentrification_panel(
df,
baseline_income_col,
baseline_rent_col,
growth_college_col,
growth_rent_col,
baseline_marginalisation_quantile = 0.5,
gentrification_growth_quantile = 0.667
)Arguments
- df
A
data.framewith one row per tract; must contain the four named columns.- baseline_income_col
Character. Column carrying baseline (period t=0) income.
- baseline_rent_col
Character. Column carrying baseline rent.
- growth_college_col
Character. Column carrying college / BA-share growth between baseline and follow-up.
- growth_rent_col
Character. Column carrying median-rent growth between baseline and follow-up.
- baseline_marginalisation_quantile
Numeric in (0, 1); default 0.5. Tract is eligible if baseline income AND rent are \(\le\) this quantile.
- gentrification_growth_quantile
Numeric in (0, 1); default 0.667. Tract gentrifies if college growth AND rent growth are \(\ge\) this quantile.
Value
A named list with classes morie_mrm_result,
morie_rich_result, list. Carries labels
(character vector of length nrow(df)), thresholds
(list of four cut-points), counts (table of label levels),
plus interpretation + warnings.
Details
Tract is eligible to gentrify iff baseline income AND baseline rent are at or below
baseline_marginalisation_quantileof the panel.Among the eligible, the tract is gentrified iff growth-in-college-share AND growth-in-rent are at or above
gentrification_growth_quantile.Everything above the baseline cut is ineligible.
Examples
set.seed(1)
df <- data.frame(
inc0 = runif(50, 20000, 80000),
rent0 = runif(50, 500, 2000),
coll_g = rnorm(50),
rent_g = rnorm(50)
)
res <- mrm_gentrification_panel(
df,
baseline_income_col = "inc0",
baseline_rent_col = "rent0",
growth_college_col = "coll_g",
growth_rent_col = "rent_g"
)
table(res$labels)
#>
#> eligible gentrified ineligible
#> 14 1 35