Skip to contents

Guide to the legacy-compatible wrappers and text/file exports in mfrmr. Use this page when you need continuity with older compatibility-oriented workflows, fixed-width reports, or graph/score file style outputs.

When to use this layer

  • You are reproducing an older workflow that expects one-shot wrappers.

  • You need fixed-width text blocks for console, logs, or archival handoff.

  • You need graphfile or scorefile style outputs for downstream legacy tools.

  • You are checking column/metric parity against a compatibility contract.

When not to use this layer

Compatibility map

run_mfrm_facets()

One-shot legacy-compatible wrapper that fits, diagnoses, and returns key tables in one object.

mfrmRFacets()

Alias for run_mfrm_facets() kept for continuity.

build_fixed_reports()

Fixed-width interaction and pairwise text blocks. Best when a text-only compatibility artifact is required.

facets_output_file_bundle()

Graphfile/scorefile style CSV and fixed-width exports for legacy pipelines.

facets_parity_report()

Column and metric contract audit against the compatibility specification. Use only when explicit parity checking is part of the task.

Preferred replacements

Practical migration rules

  • Keep compatibility wrappers only where a downstream consumer truly needs the old layout or fixed-width format.

  • For new scripts, start from package-native bundles and add compatibility outputs only at the export boundary.

  • Treat compatibility outputs as presentation contracts, not as the primary analysis objects.

Typical workflow

Companion guides

Examples

toy <- load_mfrmr_data("example_core")
toy_small <- toy[toy$Person %in% unique(toy$Person)[1:12], , drop = FALSE]

run <- run_mfrm_facets(
  data = toy_small,
  person = "Person",
  facets = c("Rater", "Criterion"),
  score = "Score",
  maxit = 10
)
#> Warning: Optimizer did not fully converge (code = 1). Consider increasing maxit (current: 10) or relaxing reltol (current: 1e-06).
summary(run)
#> Legacy-compatible Workflow Summary
#>   Model: RSM | Method: JMLE
#>   N: 192 | Persons: 12 | Facets: 2 | Categories: 4
#>   LogLik: -206.071 | AIC: 454.141 | BIC: 522.549
#>   Converged: No | Iterations: 29
#> 
#> Column mapping
#>     Key            Value
#>  Person           Person
#>   Score            Score
#>  Facets Rater, Criterion
#>  Weight                 
#> 
#> Detailed objects:
#>  - summary(out$fit)
#>  - summary(out$diagnostics)

fixed <- build_fixed_reports(
  estimate_bias(
    run$fit,
    run$diagnostics,
    facet_a = "Rater",
    facet_b = "Criterion",
    max_iter = 1
  ),
  branch = "original"
)
names(fixed)
#> [1] "bias_fixed"        "pairwise_fixed"    "pairwise_table"   
#> [4] "branch"            "style"             "interaction_label"
#> [7] "target_facet"