Skip to contents

Creates a standardized commute mode target variable for person-level weighting and expansion, using either PUMS or survey input. Use when preparing commute mode targets for synthetic population or survey analysis.

Usage

prep_target_commutemode(
  h_data,
  p_data,
  target_name = "p_commutemode",
  codebook,
  settings
)

Arguments

h_data

data.table. Household-level input (not used, included for interface consistency).

p_data

data.table. Person-level input. Required columns:

  • For PUMS: must include SERIALNO, JWTRNS_label.

  • For survey: must include work mode and job type columns as specified in settings. Rows: one per person. Modified by reference: no (returns copy).

target_name

character(1). Name of the target variable to create (default: "p_commutemode").

codebook

data.table. Codebook for variable mapping; must include work mode and job type value and label columns.

settings

list. Project settings; must include targets[[target_name]] with levels.

Value

data.table. Copy of person-level input with new target variable column (target_name).

  • Columns: all original plus target_name (character)

  • Values: standardized commute mode levels

  • Row order preserved

Details

  • Detects input type (PUMS vs. survey) by presence of SERIALNO column.

  • For PUMS:

    • Uses JWTRNS_label column, converts to lowercase, truncates to 40 chars.

    • Uses regex patterns:

      • label %like% "home" → "home"

      • label %like% "walk" → "walk"

      • label %like% "bike|bicycle" → "bike"

      • label %like% "bus|rail" → "transit"

      • label %like% "n/a" → "none"

      • else → "other"

  • For survey:

    • Uses codebook to map work mode values to labels.

    • Uses regex patterns:

      • label %like% "walk" → "walk"

      • label %like% "bike|bicycle" → "bike"

      • label %like% "bus|rail" → "transit"

      • label %like% "missing" → "none"

      • else → "other"

    • Uses job type labels to assign "home" for "work only from home".

  • Checks that observed levels match expected target levels from settings.

  • Renames output column to target_name (default: p_commutemode).

  • Returns a copy of the input data.table with the new target variable.

  • Error handling: stops if levels do not match expected values.

Settings

  • targets[["p_commutemode"]] (direct): must include levels.

Examples

## Not run:
prep_target_commutemode(h_data, p_data, target_name = "p_commutemode", codebook, settings)
#> Error: object 'p_data' not found
## End(Not run)