Skip to contents

This function standardises measure entries by extracting scale information, identifying reversed items, cleaning descriptions, and ensuring consistent structure.

Usage

boilerplate_standardise_measures(
  db,
  measure_names = NULL,
  extract_scale = TRUE,
  identify_reversed = TRUE,
  clean_descriptions = TRUE,
  ensure_structure = TRUE,
  standardise_references = TRUE,
  json_compatible = FALSE,
  verbose = FALSE,
  quiet = FALSE
)

Arguments

db

List. Either a single measure or a measures database to standardise.

measure_names

Character vector. Specific measures to standardise. If NULL, processes all.

extract_scale

Logical. Extract scale information from descriptions. Default is TRUE.

identify_reversed

Logical. Identify reversed items. Default is TRUE.

clean_descriptions

Logical. Clean up description text. Default is TRUE.

ensure_structure

Logical. Ensure all measures have standard fields. Default is TRUE.

standardise_references

Logical. Standardise reference format. Default is TRUE.

json_compatible

Logical. Ensure JSON-compatible structure by converting vectors to lists and removing NULL values. Default is FALSE.

verbose

Logical. Show detailed progress information. Default is FALSE.

quiet

Logical. Suppress all messages. Default is FALSE.

Value

List. The standardised measure(s) or database.

Examples

# Create a temporary directory and initialise database
temp_dir <- tempdir()
data_path <- file.path(temp_dir, "boilerplate_standardise_example", "data")

# Initialise database
boilerplate_init(
  categories = "measures",
  data_path = data_path,
  create_dirs = TRUE,
  create_empty = FALSE,
  confirm = FALSE,
  quiet = TRUE
)

# Import database
unified_db <- boilerplate_import(data_path = data_path, quiet = TRUE)

# Standardise all measures in database
unified_db$measures <- boilerplate_standardise_measures(
  unified_db$measures,
  quiet = TRUE
)

# Standardise with JSON compatibility
unified_db$measures <- boilerplate_standardise_measures(
  unified_db$measures,
  json_compatible = TRUE,
  quiet = TRUE
)

# Check that standardisation worked
names(unified_db$measures$anxiety)
#> [1] "name"              "description"       "reference"        
#> [4] "waves"             "keywords"          "items"            
#> [7] "standardised"      "standardised_date"

# Standardise specific measures only
unified_db$measures <- boilerplate_standardise_measures(
  unified_db$measures,
  measure_names = c("anxiety", "depression"),
  quiet = TRUE
)

# Clean up
unlink(file.path(temp_dir, "boilerplate_standardise_example"), recursive = TRUE)