Skip to contents

Runs k-means clustering on PUMA centroids and data to assign zone groups for weighting or analysis. Use for creating PUMA groups for expansion.

Usage

kmeans_zone_groups(target_pums, puma_sf, k_groups = "auto", rng_seed = 4321)

Arguments

target_pums

data.table. PUMS data table.

puma_sf

sf object. PUMA geometries.

k_groups

integer or 'auto'. Number of groups to create.

rng_seed

integer(1). Random seed for reproducibility.

Value

data.table with columns:

  • puma_id — PUMA identifier

  • zone_group — assigned group Rows: one per PUMA. Keys: (puma_id).

Details

  • Transforms PUMA geometries to projected coordinates.

  • Merges PUMS data with centroid coordinates.

  • Determines optimal K if set to 'auto'.

  • Runs k-means and assigns zone groups.

  • Returns data.table with PUMA IDs and group assignments.

  • Returns a copy; does not modify by reference.

Settings

None.

See also

get_kmeans_opt_k, scripts/weighting/zone_groups.R

Other clustering utilities: entropy_zone_groups(), get_kmeans_opt_k(), spectral_zone_groups()

Examples

## Not run:
kmeans_zone_groups(target_pums, puma_sf, k_groups = 3)
#> Error: object 'target_pums' not found