Skip to contents

Chains the treatment functions in a recommended order. Steps applied per `data_type`:

  1. **Both**: Remove duplicates (keep first); fix `ref_date` → `NA`

  2. **Personnel**: Fix `birth_date` → `NA`; flag underage and over-retirement-age workers

  3. **Contract**: Clamp `whours`; abs(negative salaries); recalculate gross = base + allowance

Use individual functions directly when you need custom strategies.

Usage

clean_hr_data(
  data,
  data_type = c("personnel", "contract"),
  remove_duplicates = TRUE,
  fix_dates = TRUE,
  fix_ages = TRUE,
  fix_salaries = TRUE,
  verbose = FALSE
)

Arguments

data

A data.frame containing personnel or contract records.

data_type

`"personnel"` or `"contract"`.

remove_duplicates

Logical (default: `TRUE`).

fix_dates

Logical (default: `TRUE`).

fix_ages

Logical, personnel only (default: `TRUE`).

fix_salaries

Logical, contract only (default: `TRUE`).

verbose

Logical, print step-level messages (default: `FALSE`).

Value

A cleaned data.frame.

Examples

if (FALSE) { # \dontrun{
clean_hr_data(personnel_df, data_type = "personnel", verbose = TRUE)
clean_hr_data(contract_df, data_type = "contract", fix_salaries = FALSE)

# Custom pipeline
contract_df |>
  remove_duplicate_contracts(level = "assignment", keep = "last") |>
  fix_invalid_dates(treatment = "clamp") |>
  fix_working_hours(treatment = "na") |>
  fix_salary_components(strategy = "cap_net")
} # }