Skip to contents

Expands a dataset of personnel and reference dates to include all possible personnel–date combinations, fills missing periods, and identifies "hire" or "fire" events based on changes in status over time.

Usage

detect_personnel_event(
  data,
  id_col,
  event_type,
  start_date,
  end_date,
  status_col,
  freq = "year"
)

Arguments

data

A data.table or data.frame containing at least the columns:

  • personnel_id: Unique identifier for personnel.

  • ref_date: Reference date (must be coercible to Date).

  • employment_status: Personnel status (e.g., "active", "pensioner", "inactive").

id_col

Character. Name of the identifier column (e.g., "personnel_id").

event_type

Character. Either "hire" or "fire", controlling which event to detect.

start_date

Optional start date for the full date sequence (default: "2007-09-01").

end_date

Optional end date for the full date sequence (default: "2018-01-01").

status_col

A column within data object for the employment status of personnel.

freq

Frequency for the sequence of dates (default: "year"). Can be any valid value for seq.Date(by = ...).

Value

A dataset with event types detected (e.g., hire or fire).

Examples

if (FALSE) { # \dontrun{
hires <- detect_personnel_event(personnel_df, id_col = "personnel_id", start_date = "2007-09-01",
                       end_date = "2018-01-01", event_type = "hire")

fires <- detect_personnel_event(personnel_df, id_col = "personnel_id", start_date = "2007-09-01",
                       end_date = "2018-01-01", event_type = "fire")
} # }