--- title: "Glossary and quick-start checklist" author: "tidyILD authors" date: "`r Sys.Date()`" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Glossary and quick-start checklist} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r setup, include = FALSE} knitr::opts_chunk$set(collapse = TRUE, comment = "#>") library(tidyILD) ``` ## Glossary of main functions | Function | Purpose | |----------|---------| | [ild_prepare()] | Turn a data frame into an ILD object: parse time, sort, add `.ild_*` columns and spacing metadata. | | [ild_summary()] | One-shot summary: n persons, n observations, time range, spacing stats, gaps. | | [ild_center()] | Within-between decomposition: add `_bp` (person mean) and `_wp` (within-person) columns. | | [ild_lag()] | Spacing-aware lags: index, gap_aware, or time_window with a resolution rule. | | [ild_check_lags()] | Audit lag columns: count valid vs invalid (e.g. beyond `max_gap`). | | [ild_spacing_class()] | Classify spacing as "regular-ish" or "irregular-ish" (overridable). | | [ild_missing_pattern()] | Tabular and (via [ild_plot()] type `"missingness"`) heatmap of missingness. | | [ild_lme()] | Fit mixed-effects model: lmer (no AR) or nlme with AR1/CAR1. | | [ild_diagnostics()] | Residual ACF, residuals vs fitted/time, Q-Q; optional AR parameter. | | [ild_plot()] | Trajectory, heatmap, gaps, missingness, fitted vs observed, residual ACF. | | [ild_simulate()] | Simulate simple ILD for examples and tests. | ## Quick-start checklist 1. **Prepare**: `x <- ild_prepare(data, id = "id", time = "time", gap_threshold = ...)` 2. **Inspect**: `ild_summary(x)`, `ild_plot(x, type = "gaps")`, `ild_plot(x, type = "missingness")` 3. **Center**: `x <- ild_center(x, var1, var2)` (adds `_bp` and `_wp`) 4. **Lag**: `x <- ild_lag(x, var1, mode = "gap_aware", max_gap = ...)` or `mode = "time_window", window = ...` 5. **Check lags** (optional): `ild_check_lags(x, lag_vars = c("var1_lag1"))` 6. **Fit**: `fit <- ild_lme(formula, data = x, ar1 = TRUE)` (or `ar1 = FALSE`) 7. **Diagnose**: `ild_diagnostics(fit)` and `ild_plot(fit, type = "fitted")`, `type = "residual_acf"` ## Wide input (strict and explicit) `ild_prepare()` now supports strict wide-to-long ingestion via `input_format = "wide"`. This conversion runs **before** standard ILD checks; all downstream functions still receive the same canonical long `ild_tbl`. ```{r eval = FALSE} wide <- data.frame( id = c(1, 2), age = c(30, 40), mood_t1 = c(10, 20), mood_t2 = c(11, 21), stress_t1 = c(5, 6), stress_t2 = c(7, 8) ) x <- ild_prepare( wide, id = "id", input_format = "wide", wide_keep_cols = "age", wide_names_pattern = "^(.+)_t(.+)$", wide_time_parser = "numeric" ) ``` Safety defaults: - non-id columns must match `wide_names_pattern` unless declared in `wide_keep_cols`; - parsed `(measure, time)` slots must be unique; - time tokens must parse cleanly under `wide_time_parser`. ## Comparison with generic workflows | Task | Generic R | tidyILD | |------|-----------|---------| | Time structure | Manual sort, manual lags, no gap checks | [ild_prepare()] + [ild_lag()] with gap or time-window rules | | Within-between | Manual person means, ad hoc naming | [ild_center()] with consistent `_bp`/`_wp` | | Residual correlation | nlme syntax heavy; easy to mis-specify | [ild_lme(ar1 = TRUE)] with auto or override AR1/CAR1 | | Lag validity | Often unchecked | [ild_check_lags()], gap_aware and time_window modes | Same goals, less code and fewer silent errors.