Packaging-only release addressing the CRAN incoming pre-test results for 1.1.0. No user-visible behaviour, no API and no estimation results change.
The Rd sources reaching LaTeX are now ASCII, so the PDF reference manual
builds without errors. Chinese column-name aliases are still documented:
the new \zh Rd macro shows the Chinese characters in the HTML and text
help and the equivalent \uxxxx escape in the PDF manual.
DESCRIPTION gains a Date field, so the package banner reads
IRTC 1.1.1 (2026-07-17) instead of IRTC 1.1.1 ().
tests/testthat/test-print-session.R no longer assumes the released R
wording "R version", which does not hold on r-devel
("R Under development (unstable)"). It now compares against
R.version.string.Usability release focused on the GPCM / multidimensional workflow. The
estimation core (irtc.mml / irtc.mml.2pl) is unchanged; all new
behaviour lives in the usability layer and is backward compatible. New
optional dependencies: none.
irtc_read() gains sampling-weight import: a weights= argument plus
automatic detection of common weight column names (English and
Chinese). Weights are validated (positive numbers; missing set to 1
with a warning), kept aligned when empty rows are dropped, and shown by
the print method. irtc() forwards them as pweights.irtc_read_q() and irtc_align_q(): read a Q (item-by-dimension)
matrix from any supported file format or an R object, with an optional
partial-credit / maximum-score declaration column. Dimension column
headers become the dimension names used in all person-level output.
Alignment against the response data warns on item mismatches and keeps
the shared items by default, or stops with on_mismatch = "error".irtc(q = , on_mismatch = ): supply a Q matrix to irtc() directly;
it is aligned and passed to the estimation.irtc_score() / irtc(): key and rules now also accept file
paths in any supported format. Answer-key files may carry a
partial-answer column, giving partial-credit scoring (full = 2,
partial = 1, other = 0). Consistency between the Q-matrix
partial-credit declaration and the applied scoring is checked.irtc(rare_categories = ): robust handling of score categories that
nobody reached. "collapse" (default) merges unobserved categories
and annotates the mapping; "prior" keeps the category structure by
stabilising the affected thresholds. Items nobody answered keep an
annotated row in irtc_results() instead of silently disappearing.b_partial / b_full, or b_step1..b_stepK). Person
output uses the Q dimension names for ability / standard-error headers.
irtc_results() schema advances to 1.1 (additive only).irtc_report() gains a Model-diagnostics section (convergence,
information criteria, EAP reliability bands, item-fit reading) and a
Data-processing-transparency section (weights, Q alignment, category
collapses, dropped items, scoring summary, cleaning log).irtc_report() now creates any missing parent directories of the
output file, matching irtc_excel().w column
as weights; it was an undocumented alias that could silently consume a
binary item column named w. Explicit weights = "w" still works.First CRAN release. The estimation core is unchanged from 0.1.0; this release adds a usability layer for four audiences: survey staff without statistical training, professional statisticians, AI agents / automated pipelines, and decision makers receiving the results.
irtc(): one-stop estimation. Accepts a file path (.xlsx, .xls,
.csv, .tsv, .txt, .dat, .sav, .por, .dta, .sas7bdat,
.xpt) or a data frame/matrix; cleans, optionally scores raw responses
against an answer key, checks the data, estimates the requested model
(model is required: "1PL"/"Rasch", "2PL", "PCM", "PCM2",
"RSM", "GPCM") and attaches classical statistics, item fit and
quality ratings. All extra arguments pass through to irtc.mml() /
irtc.mml.2pl(), which are unchanged.irtc_read(): unified import with automatic delimiter and UTF-8/GBK
encoding detection, person-ID detection (English and Chinese column
names), missing-code recoding with a range guard, category recoding to
consecutive 0-based scores, and a bilingual cleaning log.irtc_score(): answer-key (0/1) and partial-credit rules scoring with
normalisation of case, whitespace and full-width characters.irtc_check_data(): pre-estimation diagnostics; returns a
machine-readable issue table (code / severity / where / bilingual
message / fix).irtc_ctt(): item difficulty, corrected item-total correlations,
Cronbach's alpha and alpha-if-item-deleted.irtc_itemfit(): infit/outfit mean squares with Wilson-Hilferty t
statistics, for both the grid and the streaming engine.irtc_quality(): four-level plain-language item quality ratings
(good / acceptable / review / revise) with bilingual reasons and advice;
thresholds are configurable via irtc_quality_thresholds().plain_summary(): layered plain-language summary (conclusion first).irtc_excel(): writes three separate Excel workbooks - a plain-language
item quality table (colour-coded), an item difficulty/discrimination
table with a frozen schema for cross-year anchor linking, and a flat,
paste-ready person ability table. Requires the optional 'openxlsx'.irtc_report(): audience-specific reports (decision, survey,
stat) as self-contained HTML or Word (optional 'officer'), with
Wright map, ability distribution, quality summary and ICC figures.plot.irtc(): wright, ability, quality and icc plot types.irtc_results() / irtc_json(): machine-readable results with a
stable documented schema (see inst/llms.txt); JSON export via the
optional 'jsonlite'.irtc_error, domain classes) and fields code, reason,
fix, data, enabling programmatic recovery.options(irtc.lang = "en")); machine-readable schemas are
language-independent.inst/llms.txt: compact API and schema reference for AI agents.Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.