Calculates diversity indices for staff demographics using Simpson's Diversity Index. Computes racial and gender diversity scores with percentile rankings.
Usage
calc_staff_diversity_metrics(df, metrics = c("racial"))Arguments
- df
A data frame from
fetch_staff_demographics. Should contain staff demographic breakdowns with counts.- metrics
Character vector specifying which diversity metrics to calculate. Options: "racial" (default), "gender", or both c("racial", "gender").
Value
Data frame with:
location_id - Combined location identifier
diversity_index - Overall Simpson's Diversity Index (0-1 scale, higher = more diverse)
racial_diversity_score - Racial diversity score (0-1 scale)
gender_diversity_score - Gender diversity score (0-1 scale)
diversity_percentile_rank - Percentile rank vs all schools (0-100)
diversity_quintile - Quintile rank (1-5, 5 = most diverse)
Details
Simpson's Diversity Index is calculated as: $$D = 1 - \sum(p_i^2)$$
where \(p_i\) is the proportion of staff in category \(i\).
Values range from 0 (no diversity - all staff in one category) to 1 (maximum diversity - staff evenly distributed across all categories).
Examples
if (FALSE) { # \dontrun{
# Get staff demographics data
demographics <- fetch_staff_demographics(2024)
# Calculate racial diversity
racial_div <- calc_staff_diversity_metrics(demographics, metrics = "racial")
# Calculate both racial and gender diversity
all_div <- calc_staff_diversity_metrics(demographics,
metrics = c("racial", "gender"))
# View most diverse schools
all_div %>%
dplyr::arrange(dplyr::desc(diversity_index)) %>%
dplyr::select(school_name, diversity_index, diversity_quintile)
} # }