Changes asked for in CRAN’s review of the first submission:
Breaking: irw_download() and irw_save_bibtex()
no longer have a default output path; name the file with
path / output_file. Nothing is written to the
working directory by default.
The table cache now defaults to
tools::R_user_dir("irw", "cache")
(e.g. ~/.cache/R/irw) instead of ~/.cache/irw,
per CRAN policy. Tables cached by 1.3.0 are fetched again once. The
Python package still defaults to ~/.cache/irw; set
IRW_CACHE_DIR for both to share one cache.
Examples: the ones that need no network run as-is; the ones that
query Redivis are in \donttest{} instead of
\dontrun{}.
gnm and BradleyTerry2 added to Suggests
(used by the irw_simdata_comp() example).
Reading the warehouse needs a Redivis login (the README’s 1.3.0-era “login optional” section was wrong and is reverted). Outside an interactive session, functions that read the warehouse now stop at once with instructions when no login is cached, instead of starting a browser login that waits forever. New irw_has_credentials() reports whether a login is available; the warehouse examples run only when it is TRUE.
irw_simdata() and irw_simdata_comp(): seed no longer
changes the caller’s random number stream; it is restored on
exit.
irw_covariate_labels() and irw_covariates(labels = TRUE): the
source’s value labels for coded covariates, from irw_meta’s new
covariate_labels table; opt-in, irw_fetch() unchanged
(ben-domingue/irw#1775)
Docs: the exact-instrument collections (phq9,
gad7, …) and what their basis values mean, in
irw_collection_members() and irw_collections()
(ben-domingue/irw#1712)
irw_fetch(): once-per-session credit note for tables found via openESM and similar collections (ben-domingue/irw#2421)
irw_save_bibtex(): also returns the openESM citation for tables found via openESM (ben-domingue/irw#2421)
irw_imv() computes the InterModel Vigorish, and
irw_predict() returns per-response predicted probabilities
from a fitted mirt model. Together they support
out-of-sample model comparison, walked through in the new “Comparing
Models Out of Sample with the IMV” article (#131, #130).irw_set_version(), irw_get_version() and
irw_reset_version() pin IRW data to a Redivis version, so
an analysis can be reproduced against the data it was written for
(#128).irw_collections(), irw_collection() and
irw_collection_members() expose the curated groupings of
IRW tables (#125).irw_recode(), irw_recode_key() and
irw_decode() swap long identifiers for keyboard-friendly
ones and back again (#123).irw_table_sets() summarizes the items and response
values in a table with a server-side query, returning in seconds and
without spending export quota. Exhausted quota is now reported as a
quota error rather than a missing table (#121).irw_simdata() draws default discriminations for
model = "2PL" and "3PL" from lognormal(0, 0.5)
rather than lognormal(0.2, 0.2). The old spread put the middle half of
items between 0.95 and 1.25, which is a Rasch model in all but name; the
new one keeps the median at 1 and widens that range to 0.7-1.4.
Simulated data changes for a fixed seed when
a is not supplied — pass
a = rlnorm(n_item, 0.2, 0.2) for the old behavior
(#132).mirt,
ltm, psychotools and other psychometrics
packages (#124), and a pointer to the IRW project map (#127).